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 = 7148 
WHERE 
  cscart_products_categories.product_id IN (
    88961, 85800, 82352, 91937, 91939, 91940, 
    91941, 91942, 91943, 88957, 88958, 
    85644, 88942, 86856, 88969, 88970, 
    88973, 88974, 87280, 87288, 85580, 
    86863, 82386, 88094, 89442, 89444, 
    88967, 88968, 88971, 88972, 88955, 
    88956, 92151, 92152, 92153, 92353, 
    92354, 92355, 92356, 88953, 88954, 
    87879, 82403, 82410, 82424, 91893, 
    91894, 91895
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00193

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "89.41"
    },
    "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": 157,
            "rows_produced_per_join": 157,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "16.02",
              "eval_cost": "15.70",
              "prefix_cost": "31.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 (88961,85800,82352,91937,91939,91940,91941,91942,91943,88957,88958,85644,88942,86856,88969,88970,88973,88974,87280,87288,85580,86863,82386,88094,89442,89444,88967,88968,88971,88972,88955,88956,92151,92152,92153,92353,92354,92355,92356,88953,88954,87879,82403,82410,82424,91893,91894,91895))"
          }
        },
        {
          "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": 7,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "39.25",
              "eval_cost": "0.79",
              "prefix_cost": "86.67",
              "data_read_per_join": "20K"
            },
            "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": 7,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "1.96",
              "eval_cost": "0.79",
              "prefix_cost": "89.41",
              "data_read_per_join": "125"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
82352 7305,7160M
82386 7305,7160M
82403 7301,7151M
82410 7301,7151M
82424 7301,7151M
85580 7341,7342,7343,7157M
85644 7148,7156,7157M 0
85800 7241,7309,7346,7208M
86856 7182,7300,7149M
86863 7148,7156,7157M 0
87280 7148,7207M 0
87288 7148,7207M 0
87879 7241,7309,7346,7208M
88094 7148,7158M 0
88942 7241,7309,7346,7208M
88953 7241,7309,7346,7208M
88954 7241,7309,7346,7208M
88955 7241,7309,7346,7208M
88956 7241,7309,7346,7208M
88957 7241,7309,7346,7208M
88958 7241,7309,7346,7208M
88961 7241,7309,7346,7208M
88967 7241,7309,7346,7208M
88968 7241,7309,7346,7208M
88969 7241,7309,7346,7208M
88970 7241,7309,7346,7208M
88971 7241,7309,7346,7208M
88972 7241,7309,7346,7208M
88973 7241,7309,7346,7208M
88974 7241,7309,7346,7208M
89442 7148,7207M 0
89444 7148,7207M 0
91893 7341,7342,7343,7157M
91894 7341,7342,7343,7157M
91895 7341,7342,7343,7157M
91937 7301,7151M
91939 7301,7151M
91940 7301,7151M
91941 7301,7151M
91942 7301,7151M
91943 7301,7151M
92151 7341,7342,7343,7157M
92152 7341,7342,7343,7157M
92153 7341,7342,7343,7157M
92353 7341,7342,7343,7157M
92354 7341,7342,7343,7157M
92355 7341,7342,7343,7157M
92356 7341,7342,7343,7157M