Tu db.end()
la llamada pondrá en cola la conexión para cerrarse una vez que SELECT
se ha completado, por lo que cuando intente hacer el INSERT
interno consulta, la conexión de la base de datos se habrá cerrado, de ahí el error PROTOCOL_ENQUEUE_AFTER_QUIT, ya que está intentando poner en cola un nuevo comando después de cerrar la conexión.
Dependiendo de cómo esté creando la conexión, debe mover su db.end()
llame dentro de las devoluciones de llamada, o no tenga un db.end()
llamada en absoluto si la conexión se abre en el inicio del programa.