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 (
    296873, 296839, 296831, 296893, 296928, 
    296832, 296841, 296919, 296881, 296861, 
    296883, 296838, 296848, 296853, 296899, 
    296846, 296833, 296858, 296886, 296894, 
    296835, 296869, 296892, 296837
  ) 
  AND product_prices.lower_limit = 1 
  AND product_prices.usergroup_id IN (0, 1) 
GROUP BY 
  product_prices.product_id

Query time 0.00115

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "26.44"
    },
    "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 (296873,296839,296831,296893,296928,296832,296841,296919,296881,296861,296883,296838,296848,296853,296899,296846,296833,296858,296886,296894,296835,296869,296892,296837))",
        "cost_info": {
          "read_cost": "26.20",
          "eval_cost": "0.24",
          "prefix_cost": "26.44",
          "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
296831 15.00000000
296832 15.00000000
296833 20.00000000
296835 18.00000000
296837 7.00000000
296838 8.00000000
296839 8.00000000
296841 6.00000000
296846 12.00000000
296848 7.00000000
296853 8.00000000
296858 8.00000000
296861 8.00000000
296869 8.00000000
296873 8.00000000
296881 12.00000000
296883 8.00000000
296886 7.00000000
296892 8.00000000
296893 8.00000000
296894 8.00000000
296899 8.00000000
296919 8.00000000
296928 50.00000000