Acontece que eles são objetos normais e você pode acessá-los através de
user_id
. RowDataPacket é na verdade o nome da função construtora que cria um objeto, ficaria assim
new RowDataPacket(user_id, ...)
. Você pode verificar acessando seu nome [0].constructor.name
Se o resultado for um array, você teria que usar
[0].user_id
.