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 (
    91944, 91550, 91619, 91788, 91789, 91790, 
    91791, 91792, 91793, 91794, 91795, 
    92254, 92501, 92502, 92503, 92504, 
    92505, 92506, 92507, 88904, 86858, 
    84701, 88959, 88960, 88962, 82353, 
    92192, 92193, 92194, 92195
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00164

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "63.29"
    },
    "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": 111,
            "rows_produced_per_join": 111,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "11.40",
              "eval_cost": "11.10",
              "prefix_cost": "22.50",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (91944,91550,91619,91788,91789,91790,91791,91792,91793,91794,91795,92254,92501,92502,92503,92504,92505,92506,92507,88904,86858,84701,88959,88960,88962,82353,92192,92193,92194,92195))"
          }
        },
        {
          "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": 5,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "27.75",
              "eval_cost": "0.56",
              "prefix_cost": "61.35",
              "data_read_per_join": "14K"
            },
            "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": 5,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "1.39",
              "eval_cost": "0.56",
              "prefix_cost": "63.29",
              "data_read_per_join": "88"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
82353 7305,7160M
84701 7241,7309,7346,7208M
86858 7148,7156,7157M 0
88904 7194M
88959 7241,7309,7346,7208M
88960 7241,7309,7346,7208M
88962 7241,7309,7346,7208M
91550 7341,7342,7343,7157M
91619 7341,7342,7343,7157M
91788 7341,7342,7343,7157M
91789 7341,7342,7343,7157M
91790 7341,7342,7343,7157M
91791 7341,7342,7343,7157M
91792 7341,7342,7343,7157M
91793 7341,7342,7343,7157M
91794 7341,7342,7343,7157M
91795 7341,7342,7343,7157M
91944 7305,7160M
92192 7341,7342,7343,7157M
92193 7341,7342,7343,7157M
92194 7341,7342,7343,7157M
92195 7341,7342,7343,7157M
92254 7313,7338,7219M
92501 7341,7342,7343,7157M
92502 7341,7342,7343,7157M
92503 7341,7342,7343,7157M
92504 7341,7342,7343,7157M
92505 7341,7342,7343,7157M
92506 7341,7342,7343,7157M
92507 7341,7342,7343,7157M