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 (
    49164, 49230, 28159, 43817, 47655, 46982, 
    46694, 5448, 41007, 47853, 46170, 48813, 
    36234, 49550, 48472, 49209
  ) 
  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.00811

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 (49164,49230,28159,43817,47655,46982,46694,5448,41007,47853,46170,48813,36234,49550,48472,49209)",
          "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
        }
      }
    ]
  }
}

Result

product_id price
5448 4450000.0000
28159 3700000.0000
36234 790000.0000
41007 2800000.0000
43817 439000.0000
46170 3800000.0000
46694 2200000.0000
46982 1200000.0000
47655 575000.0000
47853 699000.0000
48472 250000.0000
48813 1200000.0000
49164 700000.0000
49209 499000.0000
49230 943000.0000
49550 590000.0000