Se você fez o AbstractTableModel certinho, você tem uma lista de objetos dentro do model, certo?
Então, simplesmente não retorne essa coluna no model.
Mas crie um método no seu TableModel para retornar o objeto inteiro da linha, algo como:
public SuaClasse get(int row) {
return objetos.get(row);
}
Dessa forma, vc não exibe a coluna do id, mas tem acesso a ela. Por exemplo, quando alguém clicar num botão:
int row = suaTable.getSelectedRow();
if (row == -1) return;
SuaClasse objetoClicado = seuModel.get(row);
System.out.println("O id do objeto clicado é " + objetoClicado.getId());
Melhor que isso. Dessa forma, você deixa de depender totalmente do método getValueAt. Deixa também de fazer casts, e deixa de depender da ordem das colunas na hora de usar os dados.