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 = 7166 
WHERE 
  cscart_products_categories.product_id IN (
    90227, 84051, 84059, 90281, 90289, 85963, 
    90177, 90178, 90247, 90255, 83939, 
    84083, 90207, 90218, 90179, 90133, 
    90229, 90244, 90280, 90288, 90194, 
    90254, 90262, 85962, 90228, 90243, 
    83938, 84082, 90169, 90174, 90175, 
    90206, 90217, 90193, 84050, 84058, 
    90226, 90237, 90242, 90253, 90261, 
    90186, 85961, 90252, 90260, 90251, 
    90259, 90279
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.01554

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 (90227,84051,84059,90281,90289,85963,90177,90178,90247,90255,83939,84083,90207,90218,90179,90133,90229,90244,90280,90288,90194,90254,90262,85962,90228,90243,83938,84082,90169,90174,90175,90206,90217,90193,84050,84058,90226,90237,90242,90253,90261,90186,85961,90252,90260,90251,90259,90279))"
          }
        },
        {
          "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
83938 7193M,7319
83939 7193M,7319
84050 7319,7193M
84051 7319,7193M
84058 7193M,7319
84059 7193M,7319
84082 7319,7193M
84083 7319,7193M
85961 7319,7193M
85962 7319,7193M
85963 7319,7193M
90133 7319,7193M
90169 7193M,7319
90174 7193M,7319
90175 7193M,7319
90177 7193M,7319
90178 7193M,7319
90179 7193M,7319
90186 7193M,7319
90193 7193M,7319
90194 7193M,7319
90206 7319,7193M
90207 7319,7193M
90217 7319,7193M
90218 7319,7193M
90226 7319,7193M
90227 7319,7193M
90228 7193M,7319
90229 7193M,7319
90237 7319,7193M
90242 7319,7193M
90243 7319,7193M
90244 7319,7193M
90247 7319,7193M
90251 7319,7193M
90252 7319,7193M
90253 7319,7193M
90254 7193M,7319
90255 7193M,7319
90259 7193M,7319
90260 7193M,7319
90261 7193M,7319
90262 7319,7193M
90279 7193M,7319
90280 7193M,7319
90281 7319,7193M
90288 7319,7193M
90289 7193M,7319