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 (
    431328, 339841, 430740, 430830, 430961, 
    430762, 430882, 431186, 431239, 431283, 
    430735, 430765, 430786, 430919, 431410, 
    431500, 435510, 339604, 430686, 431303, 
    430643, 431182, 431219, 431230, 431279, 
    431497, 430711, 431231, 431274, 431353, 
    431405, 431498, 431060, 430701, 430732, 
    430792, 430659, 430957, 430965, 431175, 
    431337, 431422, 431495, 431243, 431290, 
    431434, 430954, 431076, 431166, 430642, 
    430983, 431249, 431260, 431380, 431105, 
    431287, 431304, 431409, 431480, 431004, 
    431311, 431346, 430814, 430964, 430966, 
    431324, 431458, 430754, 430759, 430963, 
    431015, 431071, 430781, 430798, 431002, 
    431352, 431419, 431452, 431453, 381710, 
    430750, 431079, 431408, 431188, 431217, 
    431362, 431394, 431481, 430705, 431273, 
    431407, 430944, 431009, 431222, 430669, 
    430700, 431001, 431057, 430699, 430773
  )

Query time 0.00101

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 (431328,339841,430740,430830,430961,430762,430882,431186,431239,431283,430735,430765,430786,430919,431410,431500,435510,339604,430686,431303,430643,431182,431219,431230,431279,431497,430711,431231,431274,431353,431405,431498,431060,430701,430732,430792,430659,430957,430965,431175,431337,431422,431495,431243,431290,431434,430954,431076,431166,430642,430983,431249,431260,431380,431105,431287,431304,431409,431480,431004,431311,431346,430814,430964,430966,431324,431458,430754,430759,430963,431015,431071,430781,430798,431002,431352,431419,431452,431453,381710,430750,431079,431408,431188,431217,431362,431394,431481,430705,431273,431407,430944,431009,431222,430669,430700,431001,431057,430699,430773))"
        }
      },
      {
        "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"
          ]
        }
      }
    ]
  }
}