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 (
    48839, 49588, 49164, 1894, 1104, 856, 
    27357, 1123, 2966, 2507, 40153, 40235, 
    4262, 585, 48849, 2252, 48042
  ) 
  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.00263

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": 17,
          "filtered": 99.9960556,
          "index_condition": "cscart_product_prices.product_id in (48839,49588,49164,1894,1104,856,27357,1123,2966,2507,40153,40235,4262,585,48849,2252,48042)",
          "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
        }
      }
    ]
  }
}

Result

product_id price
585 75000.0000
856 2280000.0000
1104 583000.0000
1123 538000.0000
1894 498000.0000
2252 6000000.0000
2507 55000.0000
2966 75000.0000
4262 1650000.0000
27357 480000.0000
40153 30000.0000
40235 25000.0000
48042 495000.0000
48839 159000.0000
48849 540000.0000
49164 700000.0000
49588 345000.0000