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 (
    328, 329, 330, 535, 333, 390, 280, 689, 
    281, 283, 641, 309, 691, 693, 559, 645, 
    703, 533, 511, 534, 517, 702, 704, 585
  ) 
  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

JSON explain

{
  "query_block": {
    "select_id": 1,
    "filesort": {
      "sort_key": "cscart_product_prices.product_id",
      "temporary_table": {
        "table": {
          "table_name": "cscart_product_prices",
          "access_type": "range",
          "possible_keys": [
            "usergroup",
            "product_id",
            "lower_limit",
            "usergroup_id"
          ],
          "key": "usergroup_id",
          "key_length": "6",
          "used_key_parts": ["usergroup_id", "product_id"],
          "rows": 48,
          "filtered": 100,
          "index_condition": "cscart_product_prices.product_id in (328,329,330,535,333,390,280,689,281,283,641,309,691,693,559,645,703,533,511,534,517,702,704,585) and cscart_product_prices.usergroup_id in (0,1)",
          "attached_condition": "cscart_product_prices.lower_limit = 1"
        }
      }
    }
  }
}

Result

product_id price
280 6420.00000000
281 4530.00000000
283 4630.00000000
309 23560.00000000
328 12910.00000000
329 28270.00000000
330 28270.00000000
333 34860.00000000
390 14710.00000000
511 16020.00000000
517 16020.00000000
533 16020.00000000
534 16020.00000000
535 32040.00000000
559 17900.00000000
585 32040.00000000
641 1760.00000000
645 17440.00000000
689 8490.00000000
691 8490.00000000
693 23560.00000000
702 31090.00000000
703 20740.00000000
704 30150.00000000