Try setting ‘hierarchical’ to true if its not already.
From source documentation:
- hierarchical – Whether to include terms that have non-empty descendants
- (even if ‘hide_empty’ is set to true).
I think its usually set to trie by default, so I’m thinking you might have intentionally set it to fale for your purposes.