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 (
    109666, 109665, 109664, 109663, 109662, 
    109661, 109660, 109659, 109658, 109657, 
    110313, 110312, 110311, 110304, 110303, 
    110302, 110301, 110300, 110299, 110298
  ) 
  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.00074

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
109657 1.69000000
109658 1.69000000
109659 1.69000000
109660 1.69000000
109661 1.69000000
109662 1.69000000
109663 1.69000000
109664 1.69000000
109665 1.69000000
109666 1.69000000
110298 1.69000000
110299 1.69000000
110300 1.69000000
110301 1.69000000
110302 1.69000000
110303 1.69000000
110304 1.69000000
110311 1.69000000
110312 1.69000000
110313 1.69000000