Resulta que son objetos normales y puedes acceder a ellos a través de user_id
.
RowDataPacket es en realidad el nombre de la función constructora que crea un objeto, se vería así new RowDataPacket(user_id, ...)
. Puedes comprobarlo accediendo a su nombre [0].constructor.name
Si el resultado es una matriz, deberá usar [0].user_id
.