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 (
    296855, 296866, 296896, 296812, 296865, 
    296898, 296877, 296920, 296889, 296921, 
    296926, 296849, 296814, 296859, 296873, 
    296839, 296893, 296841, 296919, 296881, 
    296861, 296883, 296838, 296853
  ) 
  AND product_prices.lower_limit = 1 
  AND product_prices.usergroup_id IN (0, 1) 
GROUP BY 
  product_prices.product_id

Query time 0.00361

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "20.66"
    },
    "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 (296855,296866,296896,296812,296865,296898,296877,296920,296889,296921,296926,296849,296814,296859,296873,296839,296893,296841,296919,296881,296861,296883,296838,296853))",
        "cost_info": {
          "read_cost": "20.42",
          "eval_cost": "0.24",
          "prefix_cost": "20.66",
          "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
296812 8.00000000
296814 10.00000000
296838 8.00000000
296839 8.00000000
296841 6.00000000
296849 8.00000000
296853 8.00000000
296855 8.00000000
296859 8.00000000
296861 8.00000000
296865 8.00000000
296866 8.00000000
296873 8.00000000
296877 8.00000000
296881 12.00000000
296883 8.00000000
296889 8.00000000
296893 8.00000000
296896 8.00000000
296898 8.00000000
296919 8.00000000
296920 8.00000000
296921 8.00000000
296926 8.00000000