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 = 7318 
WHERE 
  cscart_products_categories.product_id IN (
    90287, 90176, 90192, 90309, 90236, 90241, 
    85960, 90235, 90240, 90225, 90183, 
    90234, 90239, 90224, 90199, 90173, 
    90308, 90223, 90278, 90286, 90198, 
    90222, 90221, 90197, 90205, 90216, 
    90220, 90191, 90277, 91538, 91539, 
    90210, 90233, 91536, 91537, 90190, 
    90182, 90172, 90276, 90204, 90215, 
    90209, 90232, 90196, 90189, 94081, 
    94082, 94085
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.01526

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "86.69"
    },
    "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": 96,
            "rows_produced_per_join": 96,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "9.89",
              "eval_cost": "9.60",
              "prefix_cost": "19.49",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (90287,90176,90192,90309,90236,90241,85960,90235,90240,90225,90183,90234,90239,90224,90199,90173,90308,90223,90278,90286,90198,90222,90221,90197,90205,90216,90220,90191,90277,91538,91539,90210,90233,91536,91537,90190,90182,90172,90276,90204,90215,90209,90232,90196,90189,94081,94082,94085))"
          }
        },
        {
          "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": 96,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "24.00",
              "eval_cost": "9.60",
              "prefix_cost": "53.09",
              "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": "24.00",
              "eval_cost": "0.48",
              "prefix_cost": "86.69",
              "data_read_per_join": "12K"
            },
            "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
85960 7193M,7319
90172 7193M,7319
90173 7319,7193M
90176 7319,7193M
90182 7193M,7319
90183 7193M,7319
90189 7319,7193M
90190 7319,7193M
90191 7319,7193M
90192 7319,7193M
90196 7319,7193M
90197 7319,7193M
90198 7193M,7319
90199 7193M,7319
90204 7193M,7319
90205 7193M,7319
90209 7193M,7319
90210 7193M,7319
90215 7193M,7319
90216 7193M,7319
90220 7193M,7319
90221 7319,7193M
90222 7319,7193M
90223 7319,7193M
90224 7319,7193M
90225 7319,7193M
90232 7319,7193M
90233 7193M,7319
90234 7193M,7319
90235 7319,7193M
90236 7319,7193M
90239 7319,7193M
90240 7319,7193M
90241 7319,7193M
90276 7319,7193M
90277 7319,7193M
90278 7319,7193M
90286 7193M,7319
90287 7193M,7319
90308 7193M,7319
90309 7193M,7319
91536 7193M,7319
91537 7319,7193M
91538 7193M,7319
91539 7193M,7319
94081 7319,7193M
94082 7319,7193M
94085 7193M,7319