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

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 7193M,7319
90197 7193M,7319
90198 7193M,7319
90199 7319,7193M
90205 7319,7193M
90216 7319,7193M
90220 7319,7193M
90221 7193M,7319
90222 7193M,7319
90223 7319,7193M
90224 7193M,7319
90225 7193M,7319
90234 7193M,7319
90235 7319,7193M
90239 7319,7193M
90240 7319,7193M
90277 7319,7193M
90278 7319,7193M
90286 7319,7193M
90308 7193M,7319
91478 7173M
91480 7173M
91481 7173M
91885 7225M,7226