SELECT 
  tmall_product_prices.product_id, 
  COALESCE(
    tmall_master_products_storefront_min_price.price, 
    MIN(
      IF(
        tmall_product_prices.percentage_discount = 0, 
        tmall_product_prices.price, 
        tmall_product_prices.price - (
          tmall_product_prices.price * tmall_product_prices.percentage_discount
        )/ 100
      )
    )
  ) AS price 
FROM 
  tmall_product_prices 
  LEFT JOIN tmall_master_products_storefront_min_price ON tmall_master_products_storefront_min_price.product_id = tmall_product_prices.product_id 
  AND tmall_master_products_storefront_min_price.storefront_id = 1 
WHERE 
  tmall_product_prices.product_id IN (
    12, 78, 79, 11, 41, 81, 107, 109, 91, 92, 
    34, 15, 31, 38, 80, 102, 28, 280, 282, 
    278
  ) 
  AND tmall_product_prices.lower_limit = 1 
  AND tmall_product_prices.usergroup_id IN (0, 1) 
GROUP BY 
  tmall_product_prices.product_id

Query time 0.00863

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost": 0.053298241,
    "nested_loop": [
      {
        "table": {
          "table_name": "tmall_master_products_storefront_min_price",
          "access_type": "system",
          "possible_keys": ["PRIMARY"],
          "rows": 0,
          "filtered": 0,
          "const_row_not_found": true
        }
      },
      {
        "table": {
          "table_name": "tmall_product_prices",
          "access_type": "range",
          "possible_keys": [
            "usergroup",
            "product_id",
            "lower_limit",
            "usergroup_id"
          ],
          "key": "product_id",
          "key_length": "3",
          "used_key_parts": ["product_id"],
          "loops": 1,
          "rows": 22,
          "cost": 0.0396149,
          "filtered": 97.28681946,
          "index_condition": "tmall_product_prices.product_id in (12,78,79,11,41,81,107,109,91,92,34,15,31,38,80,102,28,280,282,278)",
          "attached_condition": "tmall_product_prices.lower_limit = 1 and tmall_product_prices.usergroup_id in (0,1)"
        }
      }
    ]
  }
}

Result

product_id price
11 30.00000000
12 30.00000000
15 150.00000000
28 100.00000000
31 32.00000000
34 25.00000000
38 16.97000000
41 35.00000000
78 100.00000000
79 96.00000000
80 55.00000000
81 49.50000000
91 10700.00000000
92 3225.00000000
102 295.00000000
107 465.00000000
109 140.00000000
278 75.00000000
280 50.00000000
282 75.00000000