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 (
    90136, 83940, 84084, 90282, 90290, 82514, 
    90208, 90219, 85967, 90248, 90256, 
    82511, 89564, 90227, 84051, 84059, 
    90281, 90289, 85963, 90177, 90178, 
    90247, 90255, 83939, 84083, 90207, 
    90218, 92001, 90179, 90133, 90229, 
    90244, 90280, 90288, 82485, 90194, 
    82510, 89555, 90254, 90262, 82499, 
    91473, 85962, 82436, 87381, 90228, 
    90243, 85611
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00133

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 (90136,83940,84084,90282,90290,82514,90208,90219,85967,90248,90256,82511,89564,90227,84051,84059,90281,90289,85963,90177,90178,90247,90255,83939,84083,90207,90218,92001,90179,90133,90229,90244,90280,90288,82485,90194,82510,89555,90254,90262,82499,91473,85962,82436,87381,90228,90243,85611))"
          }
        },
        {
          "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
82436 7173M
82485 7172M
82499 7174M
82510 7165,7168,7177M 0
82511 7177M
82514 7165,7168,7177M 0
83939 7319,7193M
83940 7319,7193M
84051 7319,7193M
84059 7319,7193M
84083 7319,7193M
84084 7319,7193M
85611 7169M
85962 7319,7193M
85963 7319,7193M
85967 7319,7193M
87381 7173M
89555 7177M
89564 7179M
90133 7319,7193M
90136 7319,7193M
90177 7319,7193M
90178 7319,7193M
90179 7319,7193M
90194 7319,7193M
90207 7319,7193M
90208 7319,7193M
90218 7319,7193M
90219 7319,7193M
90227 7319,7193M
90228 7319,7193M
90229 7319,7193M
90243 7319,7193M
90244 7319,7193M
90247 7319,7193M
90248 7319,7193M
90254 7319,7193M
90255 7319,7193M
90256 7319,7193M
90262 7319,7193M
90280 7319,7193M
90281 7319,7193M
90282 7319,7193M
90288 7319,7193M
90289 7319,7193M
90290 7319,7193M
91473 7174M
92001 7226,7225M