Está imprimiendo 'campos' primero, que es la descripción de los campos en SHOW COLUMNS
respuesta. Las filas de respuesta en sí se ven así:
[
{
Field: 'id',
Type: 'int(11) unsigned',
Null: 'NO',
Key: 'PRI',
Default: null,
Extra: 'auto_increment'
}
/* , ... */
]
Entonces, el nombre de la primera columna, por ejemplo, es:
connection.query('SHOW COLUMNS FROM test', function(err, rows, fields){
console.log(rows[0].Field);
});