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 = 7156 
WHERE 
  cscart_products_categories.product_id IN (
    95567, 95568, 95570, 95572, 95573, 95576, 
    95577, 95582, 95583, 95584, 95585, 
    95586, 95639, 95654, 95934, 95937, 
    95941, 96123, 96130, 96202, 96203, 
    96204, 96205, 96206
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00119

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "70.49"
    },
    "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": 78,
            "rows_produced_per_join": 78,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "8.09",
              "eval_cost": "7.80",
              "prefix_cost": "15.89",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (95567,95568,95570,95572,95573,95576,95577,95582,95583,95584,95585,95586,95639,95654,95934,95937,95941,96123,96130,96202,96203,96204,96205,96206))"
          }
        },
        {
          "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": 78,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "19.50",
              "eval_cost": "7.80",
              "prefix_cost": "43.19",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        },
        {
          "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": 3,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "19.50",
              "eval_cost": "0.39",
              "prefix_cost": "70.49",
              "data_read_per_join": "10K"
            },
            "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')))"
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
95567 7341,7342,7343,7157M
95568 7341,7342,7343,7157M
95570 7341,7342,7343,7157M
95572 7341,7342,7343,7157M
95573 7341,7342,7343,7157M
95576 7341,7342,7343,7157M
95577 7341,7342,7343,7157M
95582 7341,7342,7343,7157M
95583 7341,7342,7343,7157M
95584 7341,7342,7343,7157M
95585 7341,7342,7343,7157M
95586 7341,7342,7343,7157M
95639 7341,7342,7343,7157M
95654 7341,7342,7343,7157M
95934 7341,7342,7343,7157M
95937 7341,7342,7343,7157M
95941 7341,7342,7343,7157M
96123 7194M
96130 7194M
96202 7194M
96203 7194M
96204 7194M
96205 7194M
96206 7341,7342,7343,7157M