Select rows with multiple AND conditions that override eachother
Depending on what you need

SELECT book_id 
FROM books
GROUP BY book_id 
-- Either 'Drama' or 'Thriller', at least one
HAVING SUM( attribute_id = 35 AND attribute_value IN ('Drama', 'Thriller') )
   AND SUM( attribute_id = 36 AND attribute_value = 'Author2' )


or

SELECT book_id 
FROM books
GROUP BY book_id 
-- Both 'Drama' and 'Thriller'
HAVING SUM( attribute_id = 35 AND attribute_value = 'Drama' )
   AND SUM( attribute_id = 35 AND attribute_value = 'Thriller' )
   AND SUM( attribute_id = 36 AND attribute_value = 'Author2' )




Also you may add

WHERE ( attribute_id = 35 AND attribute_value IN ('Drama', 'Thriller') )
   OR ( attribute_id = 36 AND attribute_value = 'Author2' )


in both (this is not misprint!) queries. This will decrease the amount of records grouped using index if exists, but will add filesort instead. If the index not exists this conditions add is preferred.