The code below will find and delete all empty terms of every taxonomie, including the menu.
Think before you delete, you might want to keep some empty categories.
<?php
foreach ( get_taxonomies() as $tax_slug ) {
$terms = get_terms( $tax_slug, array( 'hide_empty' => false ) );
/** @var WP_Term $wp_term */
foreach ( $terms as $wp_term ) {
if ( 0 == $wp_term->count ) {
wp_delete_term( $wp_term->term_id, $wp_term->taxonomy );
}
}
}