In case it's an option for you to dump mysql, some sql variants let you get the tree using a recursive query:
http://www.postgresql.org/docs/current/static/queries-with.html
If not, there are a variety of solutions; typically nested sets or nested intervals:
http://en.wikipedia.org/wiki/Nested_set_model
http://en.wikipedia.org/wiki/Nested_intervals
(There are many questions on SO related to both.)
What is the statement with Postgres? I might switch, MySQL seems a little soft :P
Untested, but it's something like:
with recursive tree (root, node) as (
select following as root, follower as node
from followers
union all
select tree.root, followers.follower
from followers
join tree on tree.node = followers.following
)
select * from tree where root = 2;
And the optimized version would be like:
with recursive tree (root, node) as (
select following as root, follower as node
from followers
where following = 2
union all
select tree.root, followers.follower
from followers
join tree on tree.node = followers.following
)
select * from tree;