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 (
    106173, 106172, 106171, 106170, 106642, 
    106605, 106596, 106583, 106579, 106565, 
    106546, 106545, 106544, 106543, 106542, 
    106541, 106540, 106539, 106538, 106537
  ) 
  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.00077

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
106170 1.69000000
106171 1.69000000
106172 1.69000000
106173 1.69000000
106537 1.69000000
106538 1.69000000
106539 1.69000000
106540 1.69000000
106541 1.69000000
106542 1.69000000
106543 1.69000000
106544 1.69000000
106545 1.69000000
106546 1.69000000
106565 1.69000000
106579 1.69000000
106583 1.69000000
106596 1.69000000
106605 1.69000000
106642 1.69000000