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 (
    286, 278, 280, 282, 247, 255, 256, 257, 
    249, 250, 251, 252, 253, 254, 248, 245
  ) 
  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.00088

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": "usergroup",
          "key_length": "9",
          "used_key_parts": ["product_id", "usergroup_id", "lower_limit"],
          "rows": 32,
          "filtered": 100,
          "index_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.product_id in (286,278,280,282,247,255,256,257,249,250,251,252,253,254,248,245) and cscart_product_prices.usergroup_id in (0,1)"
        }
      }
    ]
  }
}

Result

product_id price
245 27960.00000000
247 13179.60000000
248 10000.00000000
249 13990.00000000
250 20990.00000000
251 2890.00000000
252 2990.00000000
253 1200.00000000
254 1990.00000000
255 2770.00000000
256 1100.00000000
257 3200.00000000
278 75.00000000
280 50.00000000
282 75.00000000
286 100.00000000