Amigo, no primeiro caso podemos ler que o novo dataframe 'Dados' é todo o dataframe anterior EXCETO às linhas que são do TIPO apartamento e que o campo CONDOMÍNIO é nulo. Em outras palavras, são admitidas as linhas que tenham valores no campo TIPO como Casa, Quitinete etc, entretanto quando o valor neste campo for 'APARTAMENTO', seu correspondente no campo 'Condomínio' deve ser não nulo.
Quando você aplica o segundo filtro, você não pode pensar (e nem é de se esperar que pense) que o número seja o mesmo, pois o filtro diz que o novo dataframe 'Dados' agora SÓ ADMITE as linhas que são do tipo 'Apartamento' onde o campo 'Condomíno' é não nulo, DEIXANDO DE FORA, inclusive, linhas cujo os valores do campo 'TIPO' sejam 'Casa', 'Quitinete' etc. Portanto, não são filtros antagônicos, e sim definidamente não relacionados.
Você facilmente identificará isto que estou lhe explicando se executar o comando 'dados.head(15)' nos dois cenários que você nos trouxe. Observará que um dataframe traz outros valores para o campo TIPO que não só APARTAMENTO e o outro apenas valores 'APARTAMENTO' no campo TIPO.
Espero ter ajudado.