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 (
    1896, 47593, 49164, 43817, 2803, 40381, 
    2292, 388, 3860, 2232, 34548, 5467, 
    45023, 40753, 1064, 50181, 49212
  ) 
  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.00334

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 (1896,47593,49164,43817,2803,40381,2292,388,3860,2232,34548,5467,45023,40753,1064,50181,49212)",
          "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
        }
      }
    ]
  }
}

Result

product_id price
388 50000.0000
1064 329000.0000
1896 298000.0000
2232 799000.0000
2292 850000.0000
2803 815000.0000
3860 600000.0000
5467 1550000.0000
34548 399000.0000
40381 240000.0000
40753 590000.0000
43817 439000.0000
45023 45000.0000
47593 759000.0000
49164 700000.0000
49212 369000.0000
50181 240000.0000