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 (
    347, 344, 335, 334, 333, 332, 331, 330, 
    306, 300, 298, 297, 296, 295, 294, 293, 
    292, 291
  ) 
  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.00067

JSON explain

{
  "query_block": {
    "select_id": 1,
    "filesort": {
      "sort_key": "cscart_product_prices.product_id",
      "temporary_table": {
        "nested_loop": [
          {
            "table": {
              "table_name": "cscart_product_prices",
              "access_type": "ALL",
              "possible_keys": [
                "usergroup",
                "product_id",
                "lower_limit",
                "usergroup_id"
              ],
              "rows": 76,
              "filtered": 23.68420982,
              "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.product_id in (347,344,335,334,333,332,331,330,306,300,298,297,296,295,294,293,292,291) and cscart_product_prices.usergroup_id in (0,1)"
            }
          }
        ]
      }
    }
  }
}

Result

product_id price
291 150000.00000000
292 278000.00000000
293 1000.00000000
294 220000.00000000
295 1000.00000000
296 129000.00000000
297 126000.00000000
298 118000.00000000
300 118000.00000000
306 171000.00000000
330 2156000.00000000
331 30000.00000000
332 64000.00000000
333 88000.00000000
334 155000.00000000
335 190000.00000000
344 254000.00000000
347 437000.00000000