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

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