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 (
    87105, 87104, 87103, 87102, 87101, 87100, 
    87099, 87098, 87097, 87096, 87095, 
    87094, 87093, 87092, 87091, 87090, 
    87089, 87088, 87087, 87086
  ) 
  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.00056

Explain
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE cscart_product_prices range usergroup,product_id,lower_limit,usergroup_id usergroup 9 40 Using where

Result

product_id price
87086 1.69000000
87087 1.69000000
87088 1.69000000
87089 1.69000000
87090 1.69000000
87091 1.69000000
87092 1.69000000
87093 1.69000000
87094 1.69000000
87095 1.69000000
87096 1.69000000
87097 1.69000000
87098 1.69000000
87099 1.69000000
87100 1.69000000
87101 1.69000000
87102 1.69000000
87103 1.69000000
87104 1.69000000
87105 1.69000000