get_posts( $args ) return empty data
The whole problem was in WooCommerceCategoryExcluder (old, obsolete and unmaintained) plugin which hooks to pre_get_posts and adds taxonomy query to get_posts() args. Maybe this investigation helps someone else trying to solve similar problem.