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 (
    85960, 89532, 90235, 90240, 89540, 82492, 
    90225, 90183, 90234, 90239, 87371, 
    90224, 90199, 89546, 89538, 90173, 
    90308, 89554, 90223, 90278, 90286, 
    91481, 90198, 85620, 85634, 91480, 
    89544, 85618, 89542, 85616, 85619, 
    85633, 90222, 82491, 89563, 90221, 
    90197, 85617, 82490, 85615, 90205, 
    90216, 90220, 82489, 90191, 90277, 
    91478, 91885
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00154

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 (85960,89532,90235,90240,89540,82492,90225,90183,90234,90239,87371,90224,90199,89546,89538,90173,90308,89554,90223,90278,90286,91481,90198,85620,85634,91480,89544,85618,89542,85616,85619,85633,90222,82491,89563,90221,90197,85617,82490,85615,90205,90216,90220,82489,90191,90277,91478,91885))"
          }
        },
        {
          "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
82489 7173M
82490 7173M
82491 7173M
82492 7174M
85615 7175M
85616 7175M
85617 7175M
85618 7175M
85619 7175M
85620 7175M
85633 7177M
85634 7177M
85960 7319,7193M
87371 7173M
89532 7172M
89538 7174M
89540 7174M
89542 7175M
89544 7175M
89546 7175M
89554 7177M
89563 7173M
90173 7319,7193M
90183 7319,7193M
90191 7319,7193M
90197 7319,7193M
90198 7319,7193M
90199 7319,7193M
90205 7319,7193M
90216 7319,7193M
90220 7319,7193M
90221 7319,7193M
90222 7319,7193M
90223 7319,7193M
90224 7319,7193M
90225 7319,7193M
90234 7319,7193M
90235 7319,7193M
90239 7319,7193M
90240 7319,7193M
90277 7319,7193M
90278 7319,7193M
90286 7319,7193M
90308 7319,7193M
91478 7173M
91480 7173M
91481 7173M
91885 7226,7225M