Exclusion With Many to Many Relationships
I'm more of a MS SQL guy so please excuse me if my syntax is a bit off for mysql, but I would probably go with something like this.

SELECT topic_id, topic_name
FROM topic T
WHERE NOT EXISTS (
  SELECT TOP 1 1
  FROM book_has_topic BHT
  WHERE BHT.topic_topic_id = topic_id
    AND BHT.book_book_id = [bookid])