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 = 7143 
WHERE 
  cscart_products_categories.product_id IN (
    89403, 89331, 82403, 82410, 82424, 89265, 
    89330, 89264, 86817, 89368, 89268, 
    89367, 89308, 91920, 91928, 89267, 
    86818, 86820, 89591, 89592, 86226, 
    89295, 86237, 89332, 89294, 89405, 
    91912, 89309, 89321, 86230, 89257, 
    89323, 91993, 91994, 91995, 91996, 
    91997, 91998, 91999, 89322, 89325, 
    86816, 89306, 89324, 89366, 89305, 
    89317, 82385
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.01520

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "65.08"
    },
    "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": 72,
            "rows_produced_per_join": 72,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "7.49",
              "eval_cost": "7.20",
              "prefix_cost": "14.69",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (89403,89331,82403,82410,82424,89265,89330,89264,86817,89368,89268,89367,89308,91920,91928,89267,86818,86820,89591,89592,86226,89295,86237,89332,89294,89405,91912,89309,89321,86230,89257,89323,91993,91994,91995,91996,91997,91998,91999,89322,89325,86816,89306,89324,89366,89305,89317,82385))"
          }
        },
        {
          "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": 72,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "18.00",
              "eval_cost": "7.20",
              "prefix_cost": "39.89",
              "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": "18.00",
              "eval_cost": "0.36",
              "prefix_cost": "65.09",
              "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
82385 7305,7160M
82403 7151M,7301
82410 7301,7151M
82424 7301,7151M
86226 7302M
86230 7302M
86237 7302M
86816 7326M
86817 7326M
86818 7326M
86820 7326M
89257 7325,7154M,7324,7143,7153 0
89264 7326M
89265 7326M
89267 7326M
89268 7326M
89294 7143,7153,7324,7154M,7325 0
89295 7324,7143,7153,7325,7154M 0
89305 7326M
89306 7326M
89308 7326M
89309 7326M
89317 7326M
89321 7326M
89322 7326M
89323 7326M
89324 7326M
89325 7326M
89330 7326M
89331 7326M
89332 7326M
89366 7326M
89367 7326M
89368 7326M
89403 7325,7143,7153,7154M,7324 0
89405 7154M,7325,7143,7324,7153 0
89591 7302M
89592 7302M
91912 7146M
91920 7146M
91928 7145M
91993 7304M
91994 7304M
91995 7304M
91996 7304M
91997 7304M
91998 7304M
91999 7304M