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 (
    91895, 92337, 92338, 92339, 92340, 90824, 
    90825, 91839, 87232, 87233, 87237, 
    87238, 87242, 87243, 87247, 87248, 
    92450, 92451, 92452, 92453, 92454, 
    92455, 92456, 91838, 91837, 92500, 
    85039, 84251, 84256, 87580
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.01903

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "73.19"
    },
    "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": 81,
            "rows_produced_per_join": 81,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "8.39",
              "eval_cost": "8.10",
              "prefix_cost": "16.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 (91895,92337,92338,92339,92340,90824,90825,91839,87232,87233,87237,87238,87242,87243,87247,87248,92450,92451,92452,92453,92454,92455,92456,91838,91837,92500,85039,84251,84256,87580))"
          }
        },
        {
          "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": 81,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "20.25",
              "eval_cost": "8.10",
              "prefix_cost": "44.84",
              "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": 4,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "20.25",
              "eval_cost": "0.41",
              "prefix_cost": "73.19",
              "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
84251 7194M
84256 7194M
85039 7342,7343,7157M,7341
87232 7194M
87233 7194M
87237 7194M
87238 7194M
87242 7194M
87243 7194M
87247 7194M
87248 7194M
87580 7194M
90824 7194M
90825 7194M
91837 7157M,7341,7343,7342
91838 7157M,7343,7342,7341
91839 7341,7157M,7343,7342
91895 7341,7342,7157M,7343
92337 7343,7342,7341,7157M
92338 7157M,7343,7341,7342
92339 7341,7343,7342,7157M
92340 7342,7341,7157M,7343
92450 7342,7341,7157M,7343
92451 7342,7341,7343,7157M
92452 7342,7343,7157M,7341
92453 7342,7343,7341,7157M
92454 7343,7342,7341,7157M
92455 7343,7157M,7341,7342
92456 7157M,7343,7342,7341
92500 7341,7343,7157M,7342