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.00163

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 7341,7342,7343,7157M
87232 7194M
87233 7194M
87237 7194M
87238 7194M
87242 7194M
87243 7194M
87247 7194M
87248 7194M
87580 7194M
90824 7194M
90825 7194M
91837 7341,7342,7343,7157M
91838 7341,7342,7343,7157M
91839 7341,7342,7343,7157M
91895 7341,7342,7343,7157M
92337 7341,7342,7343,7157M
92338 7341,7342,7343,7157M
92339 7341,7342,7343,7157M
92340 7341,7342,7343,7157M
92450 7341,7342,7343,7157M
92451 7341,7342,7343,7157M
92452 7341,7342,7343,7157M
92453 7341,7342,7343,7157M
92454 7341,7342,7343,7157M
92455 7341,7342,7343,7157M
92456 7341,7342,7343,7157M
92500 7341,7342,7343,7157M