Set if condition with wp_nav_menu

No need to use conditional here to hide your nav menu when it is empty.

Have a look at wp_nav_menu( $args );. It accepts the following arguments

$defaults = array(
    'theme_location'  => '',
    'menu'            => '',
    'container'       => 'div',
    'container_class' => '',
    'container_id'    => '',
    'menu_class'      => 'menu',
    'menu_id'         => '',
    'echo'            => true,
    'fallback_cb'     => 'wp_page_menu',
    'before'          => '',
    'after'           => '',
    'link_before'     => '',
    'link_after'      => '',
    'items_wrap'      => '<ul id="%1$s" class="%2$s">%3$s</ul>',
    'depth'           => 0,
    'walker'          => ''
);

wp_nav_menu( $defaults );

The important one here is 'fallback_cb'

$fallback_cb (string) (optional)

If the menu doesn’t exist, the
fallback function to use. Set to false for no fallback. Note: Passes
$args to the custom function.

Default: wp_page_menu

So to hide a menu when it is empty, you can simply just add this to your arguments

'fallback_cb' => false

So your end code should be

wp_nav_menu( array('menu' => 'footer-cn', 'menu_id' => 'nav', 'menu_class' => 'ft-nav',  'fallback_cb' => false));