Ufak bir değişiklik işinizi çözer:
<?php 
function footer_menu_walk($list=[],$children=false,$opt=[]){
    $string = ($children ? '<ul>' : '') .  PHP_EOL;
    foreach ($list AS $menu){
        $string .= (!$children ? '<div class="col">' : '') .  PHP_EOL;
        if($menu['parent'] == '0') {
            $string .= '<div class="primary-btn">';
        } else {
            $string .= '<li>';    
        }
         
        $string .= $menu['title'];
        if($menu['parent']== '0') {
            $string .= '</div>' . PHP_EOL;
        }
        if($menu['children'])
            $string .= footer_menu_walk($menu['children'], true);
        if($menu['parent'] != '0') {
            $string .= '</li>' . PHP_EOL;
        } 
        $string .= (!$children ? '</div>' : '') . PHP_EOL;     
    }
    $string .= (($children) ? '</ul>' : '').PHP_EOL;
    
    return $string;
}
echo footer_menu_walk($footer_menus,false);