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 (
    663, 664, 665, 666, 667, 668, 669, 670, 
    671, 672, 673, 674, 675, 676, 677, 678, 
    679, 680, 681, 682, 683, 684, 685, 686
  ) 
  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.00083

JSON explain

{
  "query_block": {
    "select_id": 1,
    "table": {
      "table_name": "cscart_product_prices",
      "access_type": "range",
      "possible_keys": ["usergroup", "product_id", "lower_limit", "usergroup_id"],
      "key": "product_id",
      "key_length": "3",
      "used_key_parts": ["product_id"],
      "rows": 24,
      "filtered": 4.897957802,
      "index_condition": "cscart_product_prices.product_id in (663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686)",
      "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
    }
  }
}

Result

product_id price
663 27600.00000000
664 0.00000000
665 35000.00000000
666 0.00000000
667 0.00000000
668 0.00000000
669 0.00000000
670 0.00000000
671 0.00000000
672 300000.00000000
673 200608.00000000
674 0.00000000
675 0.00000000
676 0.00000000
677 0.00000000
678 0.00000000
679 0.00000000
680 0.00000000
681 35000.00000000
682 0.00000000
683 138000.00000000
684 0.00000000
685 0.00000000
686 0.00000000