Q:

MariaDb/Mysql Query to count nodes in a tree and find largest node

I have a recursive table to indicate relation of supervision, where a person can supervise many people and get supervised by other many people. 
Here a example data:

+--------+------------+
| person | supervises |
+--------+------------+
|      1 |          2 |
|      1 |          3 |
|      1 |          4 |
|      1 |          7 |
|      3 |          5 |
|      4 |          5 |
|      5 |          8 |
|      4 |          6 |
|      4 |          7 |
|      6 |          9 |
|      7 |          9 |
|      9 |         14 |
|     14 |         15 |
|      3 |         15 |
|      7 |         10 |
|      7 |         11 |
|      7 |         12 |
|      7 |         13 |
+--------+------------+

Can represented by

Of which, blue nodes represents the larger sub-tree and red node represente the root of larger tree. 
My problem is, create a MariaDb(10.4.1)/Mysql query that, given a node, for example node number 1:

Returns the root with largest amount of nodes

select largerId, amount from ....
+-----------+--------+
| largerId  | amount |
+-----------+--------+
|         7 |      5 |
+-----------+--------+

Return count of max nodes in tree (in that case is amount of 15)

select .... where id = 1

+-----------+
| count(id) |
+-----------+
|        15 |
+-----------+

other example

select .... where id = 7

+-----------+
| count(id) |
+-----------+
|         8 |
+-----------+

A:

That doesn't need recursiveness as you're only interested in direct children. 
For the first one GROUP BY person and limit the result to the top row ordered by the count descending. 
SELECT person,
       count(*)
       FROM elbat
       GROUP BY person
       ORDER BY count(*) DESC
       LIMIT 1;

For the second one count the UNION of all values of person and supervises. 
SELECT count(*)
       FROM (SELECT supervises
                    FROM elbat
             UNION
             SELECT person
                    FROM elbat) x;

db<>fiddle

