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 (
    78, 79, 81, 107, 109, 91, 92, 80, 28, 12, 
    7, 34, 38, 102, 31, 15, 41, 11, 278, 282, 
    280, 27
  ) 
  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.00370

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": 30,
          "filtered": 36.58746719,
          "index_condition": "cscart_product_prices.product_id in (78,79,81,107,109,91,92,80,28,12,7,34,38,102,31,15,41,11,278,282,280,27)",
          "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
        }
      }
    ]
  }
}

Result

product_id price
7 2200.00000000
11 1200.00000000
12 1200.00000000
15 6000.00000000
27 2200.00000000
28 4000.00000000
31 1280.00000000
34 1000.00000000
38 678.80000000
41 1400.00000000
78 4000.00000000
79 3840.00000000
80 2200.00000000
81 1980.00000000
91 428000.00000000
92 129000.00000000
102 11800.00000000
107 18600.00000000
109 5600.00000000
278 75.00000000
280 50.00000000
282 75.00000000