You won't be able to do it with a single DB Query.
Reason is that with say pagination of 10, you want to show 10 top level posts(in actual say 15 posts) but in next page of it for 10 more top level posts you might be showing 20 actual posts.. So the pagination size is different.
The other way to handle that would be to have two query : one for actual page with : ancestry is null
and applying limit and offset.
The other query then to fetch all the posts which are the any-level child of posts you have in previous query..