SELECT 
  a.category_id 
FROM 
  q_categories as a 
  LEFT JOIN q_categories as b ON b.category_id IN (50) 
WHERE 
  a.id_path LIKE CONCAT(b.id_path, '/%')

Query time 0.00059

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "134.53"
    },
    "nested_loop": [
      {
        "table": {
          "table_name": "b",
          "access_type": "const",
          "possible_keys": [
            "PRIMARY",
            "p_category_id"
          ],
          "key": "PRIMARY",
          "used_key_parts": [
            "category_id"
          ],
          "key_length": "3",
          "ref": [
            "const"
          ],
          "rows_examined_per_scan": 1,
          "rows_produced_per_join": 1,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "0.00",
            "eval_cost": "0.20",
            "prefix_cost": "0.00",
            "data_read_per_join": "2K"
          },
          "used_columns": [
            "category_id",
            "id_path"
          ]
        }
      },
      {
        "table": {
          "table_name": "a",
          "access_type": "ALL",
          "rows_examined_per_scan": 598,
          "rows_produced_per_join": 66,
          "filtered": "11.11",
          "cost_info": {
            "read_cost": "14.93",
            "eval_cost": "13.29",
            "prefix_cost": "134.53",
            "data_read_per_join": "175K"
          },
          "used_columns": [
            "category_id",
            "id_path"
          ],
          "attached_condition": "(`portal`.`a`.`id_path` like <cache>(concat('12/50','/%')))"
        }
      }
    ]
  }
}

Result

category_id
51
52
69
78
85
53
68
70
79
54
71
77
80
87
55
72
81
84
88
56
73
82
89
57
74
90
58
75
205
59
76
601
60
66
613