SELECT 
  f.feature_id, 
  f.purpose, 
  p.product_id, 
  p.parent_product_id, 
  g.id, 
  g.code 
FROM 
  cscart_product_variation_group_features AS f 
  INNER JOIN cscart_product_variation_groups AS g ON f.group_id = g.id 
  INNER JOIN cscart_product_variation_group_products AS p ON f.group_id = p.group_id 
WHERE 
  p.product_id IN (
    431129, 435509, 430656, 430863, 431338, 
    431423, 430856, 430993, 431051, 431074, 
    431165, 339782, 430688, 430702, 430722, 
    430723, 430778, 430816, 430984, 431247, 
    339718, 339675, 431005, 431027, 430627, 
    430742, 430805, 431007, 431022, 431184, 
    339604, 430720, 430839, 430878, 430933, 
    430994, 431177, 430826, 430991, 431019, 
    431357, 430917, 430990, 431108, 431264, 
    431275, 431426, 430872, 430889, 430897, 
    430918, 430940, 431297, 431345, 430690, 
    430791, 430840, 431220, 431501, 430652, 
    430790, 430835, 430958, 430968, 430977, 
    430979, 431342, 430674, 430804, 430828, 
    430886, 430960, 431138, 431358, 430786, 
    430871, 430969, 430931, 430952, 430972, 
    431006, 431428, 431451, 431467, 339597, 
    430780, 431288, 431336, 431395, 430692, 
    430715, 430770, 430894, 430953, 431503, 
    339846, 387050, 430666, 430726, 431037
  )

Query time 0.00125

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "430.18"
    },
    "nested_loop": [
      {
        "table": {
          "table_name": "p",
          "access_type": "range",
          "possible_keys": [
            "PRIMARY",
            "idx_group_id"
          ],
          "key": "PRIMARY",
          "used_key_parts": [
            "product_id"
          ],
          "key_length": "3",
          "rows_examined_per_scan": 100,
          "rows_produced_per_join": 100,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "120.12",
            "eval_cost": "20.00",
            "prefix_cost": "140.12",
            "data_read_per_join": "1K"
          },
          "used_columns": [
            "product_id",
            "parent_product_id",
            "group_id"
          ],
          "attached_condition": "(`webmarco`.`p`.`product_id` in (431129,435509,430656,430863,431338,431423,430856,430993,431051,431074,431165,339782,430688,430702,430722,430723,430778,430816,430984,431247,339718,339675,431005,431027,430627,430742,430805,431007,431022,431184,339604,430720,430839,430878,430933,430994,431177,430826,430991,431019,431357,430917,430990,431108,431264,431275,431426,430872,430889,430897,430918,430940,431297,431345,430690,430791,430840,431220,431501,430652,430790,430835,430958,430968,430977,430979,431342,430674,430804,430828,430886,430960,431138,431358,430786,430871,430969,430931,430952,430972,431006,431428,431451,431467,339597,430780,431288,431336,431395,430692,430715,430770,430894,430953,431503,339846,387050,430666,430726,431037))"
        }
      },
      {
        "table": {
          "table_name": "g",
          "access_type": "eq_ref",
          "possible_keys": [
            "PRIMARY"
          ],
          "key": "PRIMARY",
          "used_key_parts": [
            "id"
          ],
          "key_length": "3",
          "ref": [
            "webmarco.p.group_id"
          ],
          "rows_examined_per_scan": 1,
          "rows_produced_per_join": 100,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "100.00",
            "eval_cost": "20.00",
            "prefix_cost": "260.12",
            "data_read_per_join": "39K"
          },
          "used_columns": [
            "id",
            "code"
          ]
        }
      },
      {
        "table": {
          "table_name": "f",
          "access_type": "ref",
          "possible_keys": [
            "idx_group_id"
          ],
          "key": "idx_group_id",
          "used_key_parts": [
            "group_id"
          ],
          "key_length": "3",
          "ref": [
            "webmarco.p.group_id"
          ],
          "rows_examined_per_scan": 1,
          "rows_produced_per_join": 141,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "141.72",
            "eval_cost": "28.34",
            "prefix_cost": "430.18",
            "data_read_per_join": "14K"
          },
          "used_columns": [
            "feature_id",
            "purpose",
            "group_id"
          ]
        }
      }
    ]
  }
}