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 (
    49169, 2917, 38552, 3975, 4373, 23481, 
    36308, 38553, 43651, 3978, 36717, 43650, 
    34678, 3979, 36472, 36471, 36473, 47487, 
    2047
  ) 
  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.00507

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": 19,
          "filtered": 99.9960556,
          "index_condition": "cscart_product_prices.product_id in (49169,2917,38552,3975,4373,23481,36308,38553,43651,3978,36717,43650,34678,3979,36472,36471,36473,47487,2047)",
          "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
        }
      }
    ]
  }
}

Result

product_id price
2047 841667.0000
2917 525000.0000
3975 825000.0000
3978 825000.0000
3979 935000.0000
4373 925000.0000
23481 800000.0000
34678 800000.0000
36308 820000.0000
36471 580000.0000
36472 780000.0000
36473 680000.0000
36717 820000.0000
38552 720000.0000
38553 850000.0000
43650 950000.0000
43651 650000.0000
47487 550000.0000
49169 850000.0000