SELECT 
  cscart_ult_product_prices.product_id, 
  MIN(
    IF(
      cscart_ult_product_prices.percentage_discount = 0, 
      cscart_ult_product_prices.price, 
      cscart_ult_product_prices.price - (
        cscart_ult_product_prices.price * cscart_ult_product_prices.percentage_discount
      )/ 100
    )
  ) AS price 
FROM 
  cscart_ult_product_prices 
WHERE 
  cscart_ult_product_prices.product_id IN (
    46924, 46923, 46922, 46873, 46872, 46871, 
    46870, 46869, 46868, 46867, 46866, 
    46865, 46864, 46863, 46862, 46861, 
    46860, 46859, 46858, 46857, 46624, 
    46568, 46567, 46565, 46822, 46821, 
    46820, 46819, 46901, 46900, 46899, 
    46898, 46897, 46896, 46895, 46894, 
    46893, 46892, 46891, 46890, 46889, 
    46888, 46887, 46886, 46885, 46884, 
    46883, 46882, 46881, 46880, 46879, 
    46878, 46877, 46621, 46620, 46619, 
    46618, 46617, 46616, 46615, 46614, 
    46613, 46535, 46534, 46533, 46532, 
    46519, 46477, 46472, 46471, 46437, 
    46702, 46701, 46700, 46699, 46348, 
    46329, 46580, 46579, 46358
  ) 
  AND cscart_ult_product_prices.lower_limit = 1 
  AND cscart_ult_product_prices.company_id = 1 
  AND cscart_ult_product_prices.usergroup_id IN (0, 0, 1) 
GROUP BY 
  cscart_ult_product_prices.product_id

Query time 0.00098

Explain
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE cscart_ult_product_prices range usergroup,product_id,company_id,lower_limit,usergroup_id usergroup 13 1 Using where