Sim, coloque no loop:
$array[ $row['cat_title'] ][ $row['sub_cat_id'] ] = $row['sub_cat_title'];
Mas,
$array[$row['cat_title']]
pode não estar definido ainda, então você deve adicionar esta verificação de antemão:if( !isset( $array[$row['cat_title']])) {
$array[$row['cat_title']] = array();
}
Seu código original não precisa dessa verificação, pois
$array[]
não gerará nenhum aviso/aviso, mas quando você tentar definir uma chave específica, isso gerará um aviso/aviso se a variável ainda não estiver declarada como um array.