SELECT 
  product_prices.product_id, 
  MIN(
    IF(
      product_prices.percentage_discount = 0, 
      product_prices.price, 
      product_prices.price - (
        product_prices.price * product_prices.percentage_discount
      )/ 100
    )
  ) AS price 
FROM 
  product_prices 
WHERE 
  product_prices.product_id IN (
    296840, 296925, 296815, 296844, 296874, 
    296922, 296924, 296843, 296902, 296891, 
    296863, 296923, 296850, 296916, 296813, 
    296856, 296854, 296901, 296878, 296871, 
    296867, 296879, 296918, 296870
  ) 
  AND product_prices.lower_limit = 1 
  AND product_prices.usergroup_id IN (0, 1) 
GROUP BY 
  product_prices.product_id

Query time 0.00103

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "18.81"
    },
    "grouping_operation": {
      "using_filesort": false,
      "table": {
        "table_name": "product_prices",
        "access_type": "range",
        "possible_keys": [
          "usergroup",
          "product_id",
          "lower_limit",
          "usergroup_id"
        ],
        "key": "product_id",
        "used_key_parts": [
          "product_id"
        ],
        "key_length": "3",
        "rows_examined_per_scan": 24,
        "rows_produced_per_join": 2,
        "filtered": "10.00",
        "index_condition": "(`goimagine`.`product_prices`.`product_id` in (296840,296925,296815,296844,296874,296922,296924,296843,296902,296891,296863,296923,296850,296916,296813,296856,296854,296901,296878,296871,296867,296879,296918,296870))",
        "cost_info": {
          "read_cost": "18.57",
          "eval_cost": "0.24",
          "prefix_cost": "18.81",
          "data_read_per_join": "57"
        },
        "used_columns": [
          "id",
          "product_id",
          "price",
          "percentage_discount",
          "lower_limit",
          "usergroup_id"
        ],
        "attached_condition": "((`goimagine`.`product_prices`.`lower_limit` = 1) and (`goimagine`.`product_prices`.`usergroup_id` in (0,1)))"
      }
    }
  }
}

Result

product_id price
296813 8.00000000
296815 8.00000000
296840 8.00000000
296843 8.00000000
296844 8.00000000
296850 8.00000000
296854 10.00000000
296856 8.00000000
296863 8.00000000
296867 8.00000000
296870 8.00000000
296871 8.00000000
296874 8.00000000
296878 8.00000000
296879 8.00000000
296891 8.00000000
296901 8.00000000
296902 8.00000000
296916 8.00000000
296918 8.00000000
296922 8.00000000
296923 8.00000000
296924 8.00000000
296925 8.00000000