Innanzitutto .equals(null) non ha alcun senso. La specifica di equals() è molto chiara:
For any non-null reference value x, x.equals(null) should return false.
Quindi passando null hai sempre false (indipendentemente da x), e con la tua negazione dà true ma il tuo test è sbagliato. Fai invece il test per != null
Poi comunque c'è un'altra questione. Il tuo codice dovrebbe "parlare" solo con il model, non con JTable per estrarre i dati. C'è anche una motivazione pratica. In JTable c'è la funzionalità di column reordering che è attiva per default. Permette all'utente di "trascinare" le colonne a sinistra/destra per cambiarne l'ordine. Il getValueAt di JTable si basa su quest'ordine fisico, quindi se non disabiliti quella feature, non puoi essere certo di quali sono le colonne, se l'utente le trascina. Il getValueAt del model invece è "stabile" sulle colonne perché il loro ordine è definito programmaticamente.
Può aver senso usare il getValueAt di JTable solo se ad esempio vuoi "esportare" i dati in modo molto generico esattamente come li vede l'utente.