Tus consultas:
Código MySQL:
Ver original Libros.titulo,
autor.nombre,
autor.apellido,
Libros.apubli,
autor.nacionalidad
autor, Libros, libroautor
autor.id_autor=libroautor.id_autor
AND libroautor.id_libro
=Libros.id_libro
Libros.titulo,
autor.nombre,
autor.apellido,
Libros.apubli,
autor.nacionalidad
(Libros
INNER JOIN libroautor
ON Libros.id_libro
=libroautor.id_libro
) WHERE Libros.id_genero
=3;
Técnicamente no tienen errores.
Un mensaje de tipo "empty set" no es un error, sino que realmente no teiens registros que cumplan las condiciones.
Los datos deben cumplir la relación en las tres tablas al mismo tiempo, pero con un WHERE, deben cumplir una condición adicional.
Verifica los datos. No es un error de lógica sino de datos.
Para hacertelo más simple: Quitale el WHERE y la condición a la segunda consulta y verifica si devuelve datos.
Si devuelve datos, toma a cada uno de los autores y verifica que cada uno de los libros pertenezcan al género que buscas.