SELECT 
  cscart_product_prices.product_id, 
  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 
WHERE 
  cscart_product_prices.product_id IN (
    48559, 35175, 47657, 2695, 319, 35249, 
    47902, 43852, 36305, 48220, 47606, 
    40310, 22020, 49105, 48652, 49009
  ) 
  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.00164

JSON explain

{
  "query_block": {
    "select_id": 1,
    "nested_loop": [
      {
        "table": {
          "table_name": "cscart_product_prices",
          "access_type": "range",
          "possible_keys": [
            "usergroup",
            "product_id",
            "lower_limit",
            "usergroup_id"
          ],
          "key": "product_id",
          "key_length": "3",
          "used_key_parts": ["product_id"],
          "rows": 16,
          "filtered": 99.9960556,
          "index_condition": "cscart_product_prices.product_id in (48559,35175,47657,2695,319,35249,47902,43852,36305,48220,47606,40310,22020,49105,48652,49009)",
          "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
        }
      }
    ]
  }
}

Result

product_id price
319 5329000.0000
2695 300000.0000
22020 4589000.0000
35175 616000.0000
35249 1395000.0000
36305 350000.0000
40310 1499000.0000
43852 960000.0000
47606 1254000.0000
47657 285000.0000
47902 398000.0000
48220 360000.0000
48559 616000.0000
48652 195000.0000
49009 450000.0000
49105 580000.0000