SELECT 
  cscart_products_categories.product_id, 
  GROUP_CONCAT(
    IF(
      cscart_products_categories.link_type = "M", 
      CONCAT(
        cscart_products_categories.category_id, 
        "M"
      ), 
      cscart_products_categories.category_id
    )
  ) AS category_ids, 
  product_position_source.position AS position 
FROM 
  cscart_products_categories 
  INNER JOIN cscart_categories ON cscart_categories.category_id = cscart_products_categories.category_id 
  AND cscart_categories.storefront_id IN (0, 1) 
  AND (
    cscart_categories.usergroup_ids = '' 
    OR FIND_IN_SET(
      0, cscart_categories.usergroup_ids
    ) 
    OR FIND_IN_SET(
      1, cscart_categories.usergroup_ids
    )
  ) 
  AND cscart_categories.status IN ('A', 'H') 
  LEFT JOIN cscart_products_categories AS product_position_source ON cscart_products_categories.product_id = product_position_source.product_id 
  AND product_position_source.category_id = 7219 
WHERE 
  cscart_products_categories.product_id IN (
    96622, 96623, 96624, 96625, 96626, 96627, 
    96628, 96629, 96668, 96669, 96670, 
    96671, 96672, 96673, 96674, 96675, 
    96676, 96678, 96680, 96681, 96682, 
    96683, 96686, 96687, 96688, 96689, 
    96690, 96691, 96692, 96694, 97083, 
    97219, 97220, 97221, 97222, 97223, 
    97224, 97225, 97226, 97227, 97567, 
    97570, 97573, 97576, 97577, 97578, 
    97579, 97580
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00192

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "95.09"
    },
    "grouping_operation": {
      "using_filesort": false,
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_products_categories",
            "access_type": "range",
            "possible_keys": [
              "PRIMARY",
              "link_type",
              "pt"
            ],
            "key": "pt",
            "used_key_parts": [
              "product_id"
            ],
            "key_length": "3",
            "rows_examined_per_scan": 167,
            "rows_produced_per_join": 167,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "17.02",
              "eval_cost": "16.70",
              "prefix_cost": "33.72",
              "data_read_per_join": "2K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (96622,96623,96624,96625,96626,96627,96628,96629,96668,96669,96670,96671,96672,96673,96674,96675,96676,96678,96680,96681,96682,96683,96686,96687,96688,96689,96690,96691,96692,96694,97083,97219,97220,97221,97222,97223,97224,97225,97226,97227,97567,97570,97573,97576,97577,97578,97579,97580))"
          }
        },
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id"
            ],
            "key_length": "3",
            "ref": [
              "nuie_scalesta_net.cscart_products_categories.category_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 8,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "41.75",
              "eval_cost": "0.84",
              "prefix_cost": "92.17",
              "data_read_per_join": "21K"
            },
            "used_columns": [
              "category_id",
              "usergroup_ids",
              "status",
              "storefront_id"
            ],
            "attached_condition": "((`nuie_scalesta_net`.`cscart_categories`.`storefront_id` in (0,1)) and ((`nuie_scalesta_net`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`nuie_scalesta_net`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`nuie_scalesta_net`.`cscart_categories`.`usergroup_ids`))) and (`nuie_scalesta_net`.`cscart_categories`.`status` in ('A','H')))"
          }
        },
        {
          "table": {
            "table_name": "product_position_source",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY",
              "pt"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id",
              "product_id"
            ],
            "key_length": "6",
            "ref": [
              "const",
              "nuie_scalesta_net.cscart_products_categories.product_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 8,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "2.09",
              "eval_cost": "0.84",
              "prefix_cost": "95.09",
              "data_read_per_join": "133"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
96622 7341,7342,7343,7157M
96623 7341,7342,7343,7157M
96624 7341,7342,7343,7157M
96625 7313,7338,7219M 0
96626 7313,7338,7219M 0
96627 7313,7338,7219M 0
96628 7313,7338,7219M 0
96629 7313,7338,7219M 0
96668 7313,7338,7219M 0
96669 7313,7338,7219M 0
96670 7313,7338,7219M 0
96671 7313,7338,7219M 0
96672 7313,7338,7219M 0
96673 7313,7338,7219M 0
96674 7313,7338,7219M 0
96675 7313,7338,7219M 0
96676 7313,7338,7219M 0
96678 7341,7342,7343,7157M
96680 7313,7338,7219M 0
96681 7313,7338,7219M 0
96682 7313,7338,7219M 0
96683 7313,7338,7219M 0
96686 7313,7338,7219M 0
96687 7313,7338,7219M 0
96688 7313,7338,7219M 0
96689 7313,7338,7219M 0
96690 7313,7338,7219M 0
96691 7313,7338,7219M 0
96692 7313,7338,7219M 0
96694 7341,7342,7343,7157M
97083 7341,7342,7343,7157M
97219 7341,7342,7343,7157M
97220 7341,7342,7343,7157M
97221 7341,7342,7343,7157M
97222 7341,7342,7343,7157M
97223 7341,7342,7343,7157M
97224 7341,7342,7343,7157M
97225 7341,7342,7343,7157M
97226 7341,7342,7343,7157M
97227 7341,7342,7343,7157M
97567 7341,7342,7343,7157M
97570 7341,7342,7343,7157M
97573 7341,7342,7343,7157M
97576 7341,7342,7343,7157M
97577 7341,7342,7343,7157M
97578 7341,7342,7343,7157M
97579 7341,7342,7343,7157M
97580 7341,7342,7343,7157M