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 (
    87242, 87243, 87247, 87248, 92450, 92451, 
    92452, 92453, 92454, 92455, 92456, 
    91838, 91837, 92500, 85039, 84251, 
    84256, 87580, 87595, 87610, 88791, 
    87370, 89609, 89610
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00631

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "59.68"
    },
    "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": 66,
            "rows_produced_per_join": 66,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "6.88",
              "eval_cost": "6.60",
              "prefix_cost": "13.48",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (87242,87243,87247,87248,92450,92451,92452,92453,92454,92455,92456,91838,91837,92500,85039,84251,84256,87580,87595,87610,88791,87370,89609,89610))"
          }
        },
        {
          "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": 66,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "16.50",
              "eval_cost": "6.60",
              "prefix_cost": "36.58",
              "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": "16.50",
              "eval_cost": "0.33",
              "prefix_cost": "59.68",
              "data_read_per_join": "8K"
            },
            "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
84251 7194M
84256 7194M
85039 7341,7343,7342,7157M
87242 7194M
87243 7194M
87247 7194M
87248 7194M
87370 7341,7343,7342,7157M
87580 7194M
87595 7194M
87610 7194M
88791 7194M
89609 7157M,7343,7342,7341
89610 7343,7157M,7342,7341
91837 7341,7342,7157M,7343
91838 7341,7342,7157M,7343
92450 7157M,7342,7343,7341
92451 7343,7341,7342,7157M
92452 7341,7343,7157M,7342
92453 7343,7341,7342,7157M
92454 7342,7341,7157M,7343
92455 7342,7341,7343,7157M
92456 7342,7343,7341,7157M
92500 7343,7157M,7341,7342