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 (
    405548, 405558, 405564, 405567, 405572, 
    405576, 405588, 405592, 406355, 406859, 
    406863, 406865, 406866, 406870, 406875, 
    406886, 406912, 407621, 407622, 407642, 
    407645, 407649, 407676, 407679
  ) 
  AND product_prices.lower_limit = 1 
  AND product_prices.usergroup_id IN (0, 1) 
GROUP BY 
  product_prices.product_id

Query time 0.00119

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "16.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 (405548,405558,405564,405567,405572,405576,405588,405592,406355,406859,406863,406865,406866,406870,406875,406886,406912,407621,407622,407642,407645,407649,407676,407679))",
        "cost_info": {
          "read_cost": "16.57",
          "eval_cost": "0.24",
          "prefix_cost": "16.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
405548 18.00000000
405558 2.45000000
405564 18.00000000
405567 3.55000000
405572 20.00000000
405576 2.45000000
405588 20.00000000
405592 2.45000000
406355 18.00000000
406859 21.00000000
406863 2.45000000
406865 18.00000000
406866 2.45000000
406870 2.45000000
406875 18.00000000
406886 2.45000000
406912 2.45000000
407621 2.45000000
407622 2.45000000
407642 18.00000000
407645 15.00000000
407649 2.45000000
407676 15.00000000
407679 2.45000000