If list_cats() is called with hide_empty set to true and child_of nonzero, it doesn't work. When hide_empty is set, the SQL executed does not include the category_parent column, so none of the results have parents, and child_of thus always matches nothing.