SELECT 
  cscart_product_prices.product_id, 
  COALESCE(
    cscart_master_products_storefront_min_price.price, 
    MIN(
      IF(
        cscart_product_prices.percentage_discount = 0, 
        cscart_product_prices.price, 
        cscart_product_prices.price - (
          cscart_product_prices.price * cscart_product_prices.percentage_discount
        )/ 100
      )
    )
  ) AS price 
FROM 
  cscart_product_prices 
  LEFT JOIN cscart_master_products_storefront_min_price ON cscart_master_products_storefront_min_price.product_id = cscart_product_prices.product_id 
  AND cscart_master_products_storefront_min_price.storefront_id = 1 
WHERE 
  cscart_product_prices.product_id IN (
    38085, 64323, 64324, 64325, 64326, 64328, 
    64329, 64339, 64341, 64342, 64343, 
    64344, 64352, 66796, 64337, 64340, 
    64345, 64346, 64347, 64551, 64335, 
    64348, 64338, 38081
  ) 
  AND cscart_product_prices.lower_limit = 1 
  AND cscart_product_prices.usergroup_id IN (0, 1) 
GROUP BY 
  cscart_product_prices.product_id

Query time 0.00198

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "5.13"
    },
    "grouping_operation": {
      "using_filesort": false,
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_master_products_storefront_min_price",
            "access_type": "system",
            "possible_keys": [
              "PRIMARY"
            ],
            "rows_examined_per_scan": 0,
            "rows_produced_per_join": 1,
            "filtered": "0.00",
            "const_row_not_found": true,
            "cost_info": {
              "read_cost": "0.00",
              "eval_cost": "0.10",
              "prefix_cost": "0.00",
              "data_read_per_join": "16"
            },
            "used_columns": [
              "storefront_id",
              "product_id",
              "price"
            ]
          }
        },
        {
          "table": {
            "table_name": "cscart_product_prices",
            "access_type": "range",
            "possible_keys": [
              "usergroup",
              "product_id",
              "lower_limit",
              "usergroup_id",
              "idx_product_prices_usergroup_limit",
              "idx_prices_discount_lookup",
              "idx_prices_min_calc",
              "idx_prices_usergroup_lookup",
              "idx_prices_usergroup_product"
            ],
            "key": "idx_prices_discount_lookup",
            "used_key_parts": [
              "product_id",
              "lower_limit"
            ],
            "key_length": "6",
            "rows_examined_per_scan": 24,
            "rows_produced_per_join": 4,
            "filtered": "20.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "4.65",
              "eval_cost": "0.48",
              "prefix_cost": "5.13",
              "data_read_per_join": "115"
            },
            "used_columns": [
              "product_id",
              "price",
              "percentage_discount",
              "lower_limit",
              "usergroup_id"
            ],
            "attached_condition": "((`cscart_db`.`cscart_product_prices`.`lower_limit` = 1) and (`cscart_db`.`cscart_product_prices`.`product_id` in (38085,64323,64324,64325,64326,64328,64329,64339,64341,64342,64343,64344,64352,66796,64337,64340,64345,64346,64347,64551,64335,64348,64338,38081)) and (`cscart_db`.`cscart_product_prices`.`usergroup_id` in (0,1)))"
          }
        }
      ]
    }
  }
}

Result

product_id price
38081 495.000000
38085 724.500000
64323 645.000000
64324 645.000000
64325 645.000000
64326 445.000000
64328 445.000000
64329 445.000000
64335 495.000000
64337 445.000000
64338 445.000000
64339 445.000000
64340 495.000000
64341 445.000000
64342 445.000000
64343 445.000000
64344 495.000000
64345 445.000000
64346 395.000000
64347 445.000000
64348 445.000000
64352 645.000000
64551 445.000000
66796 395.000000