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 (
    85644, 85580, 86863, 92151, 92152, 92153, 
    92353, 92354, 92355, 92356, 91893, 
    91894, 91895, 92337, 92338, 92339, 
    92340, 90824, 90825, 91839, 87232, 
    87233, 87237, 87238
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.01489

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "68.69"
    },
    "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": 76,
            "rows_produced_per_join": 76,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "7.89",
              "eval_cost": "7.60",
              "prefix_cost": "15.49",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (85644,85580,86863,92151,92152,92153,92353,92354,92355,92356,91893,91894,91895,92337,92338,92339,92340,90824,90825,91839,87232,87233,87237,87238))"
          }
        },
        {
          "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": 76,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "19.00",
              "eval_cost": "7.60",
              "prefix_cost": "42.09",
              "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.00",
              "eval_cost": "0.38",
              "prefix_cost": "68.69",
              "data_read_per_join": "9K"
            },
            "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
85580 7157M,7342,7343,7341
85644 7156,7157M,7148 0
86863 7148,7156,7157M 0
87232 7194M
87233 7194M
87237 7194M
87238 7194M
90824 7194M
90825 7194M
91839 7342,7157M,7343,7341
91893 7342,7157M,7343,7341
91894 7342,7343,7157M,7341
91895 7341,7342,7343,7157M
92151 7341,7342,7157M,7343
92152 7341,7342,7157M,7343
92153 7341,7157M,7343,7342
92337 7342,7343,7157M,7341
92338 7342,7341,7157M,7343
92339 7341,7343,7157M,7342
92340 7342,7343,7157M,7341
92353 7343,7157M,7341,7342
92354 7341,7343,7157M,7342
92355 7341,7157M,7343,7342
92356 7343,7157M,7341,7342