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 (
    107, 73, 102, 1154, 1155, 307, 1157, 1156, 
    227, 487, 1153, 324, 229, 228, 1152, 
    1151, 1149, 1067, 1150, 1063, 1064, 
    905, 490, 1333
  ) 
  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.00112

JSON explain

{
  "query_block": {
    "select_id": 1,
    "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": 24,
      "filtered": 4.897957802,
      "index_condition": "cscart_product_prices.product_id in (107,73,102,1154,1155,307,1157,1156,227,487,1153,324,229,228,1152,1151,1149,1067,1150,1063,1064,905,490,1333)",
      "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
    }
  }
}

Result

product_id price
73 0.00000000
102 0.00000000
107 10000.00000000
227 0.00000000
228 130000.00000000
229 130000.00000000
307 0.00000000
324 130000.00000000
487 0.00000000
490 0.00000000
905 0.00000000
1063 0.00000000
1064 0.00000000
1067 0.00000000
1149 0.00000000
1150 0.00000000
1151 0.00000000
1152 0.00000000
1153 0.00000000
1154 0.00000000
1155 0.00000000
1156 0.00000000
1157 0.00000000
1333 138000.00000000