Found it. Looks complicated for a newbie (me) on RoR. But here it is:
def eligible_taxons
taxon_with_childs = []
taxon.each { |t| t.self_and_descendants.each{|s| taxon_with_childs << s} }
taxon_with_childs.uniq
end
It builds new list of descendants and self. More details about these functions are here https://github.com/collectiveidea/awesome_nested_set/blob/master/lib/awesome_nested_set/model/relatable.rb
Because after building this list some rows are identical and repeats few times we return only unique taxon_with_childs.uniq
This probably not the best performing algorithm but it does what I needed and fits well with amount of data.