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 = 7165 
WHERE 
  cscart_products_categories.product_id IN (
    85969, 90187, 90188, 90284, 90292, 90145, 
    90160, 84052, 84060, 90130, 91476, 
    85965, 82516, 82544, 89559, 89569, 
    90299, 90306, 90144, 90159, 90249, 
    90257, 83941, 84085, 87412, 90283, 
    90291, 82515, 90143, 90158, 90200, 
    90211, 85968, 90195, 84089, 90170, 
    90171, 90134, 90135, 85964, 87359, 
    90298, 90305, 90230, 90245, 90184, 
    90185, 91475
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.01585

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "80.39"
    },
    "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": 89,
            "rows_produced_per_join": 89,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "9.19",
              "eval_cost": "8.90",
              "prefix_cost": "18.09",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (85969,90187,90188,90284,90292,90145,90160,84052,84060,90130,91476,85965,82516,82544,89559,89569,90299,90306,90144,90159,90249,90257,83941,84085,87412,90283,90291,82515,90143,90158,90200,90211,85968,90195,84089,90170,90171,90134,90135,85964,87359,90298,90305,90230,90245,90184,90185,91475))"
          }
        },
        {
          "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": 89,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "22.25",
              "eval_cost": "8.90",
              "prefix_cost": "49.24",
              "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": "22.25",
              "eval_cost": "0.45",
              "prefix_cost": "80.39",
              "data_read_per_join": "11K"
            },
            "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
82515 7177M
82516 7168,7165,7177M 0
82544 7176M
83941 7319,7193M
84052 7319,7193M
84060 7319,7193M
84085 7319,7193M
84089 7319,7193M
85964 7193M,7319
85965 7193M,7319
85968 7193M,7319
85969 7193M,7319
87359 7173M
87412 7174M
89559 7177M
89569 7176M
90130 7193M,7319
90134 7193M,7319
90135 7319,7193M
90143 7193M,7319
90144 7193M,7319
90145 7193M,7319
90158 7193M,7319
90159 7193M,7319
90160 7319,7193M
90170 7319,7193M
90171 7319,7193M
90184 7193M,7319
90185 7319,7193M
90187 7193M,7319
90188 7319,7193M
90195 7193M,7319
90200 7193M,7319
90211 7319,7193M
90230 7319,7193M
90245 7319,7193M
90249 7319,7193M
90257 7319,7193M
90283 7319,7193M
90284 7193M,7319
90291 7319,7193M
90292 7193M,7319
90298 7193M,7319
90299 7193M,7319
90305 7193M,7319
90306 7193M,7319
91475 7177M
91476 7177M