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 (
    2044, 2047, 49003, 49030, 49703, 41434, 
    41432, 48783, 49010, 49107, 321, 41433, 
    49028, 49016, 49009, 49008, 49204, 
    49205, 50285, 50347, 50213
  ) 
  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.00247

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": 21,
          "filtered": 99.9960556,
          "index_condition": "cscart_product_prices.product_id in (2044,2047,49003,49030,49703,41434,41432,48783,49010,49107,321,41433,49028,49016,49009,49008,49204,49205,50285,50347,50213)",
          "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
        }
      }
    ]
  }
}

Result

product_id price
321 5999000.0000
2044 3635100.0000
2047 841667.0000
41432 8100000.0000
41433 6879000.0000
41434 6879000.0000
48783 490000.0000
49003 180000.0000
49008 490000.0000
49009 450000.0000
49010 320000.0000
49016 990000.0000
49028 625000.0000
49030 720000.0000
49107 790000.0000
49204 169000.0000
49205 169000.0000
49703 590000.0000
50213 650000.0000
50285 1130000.0000
50347 1150000.0000