Dear HuyNguyen1210,
These rules should all work (the first one gives free shipping if one of the articles is a book, other two are identical and provide free shipping if only books are purchased and none of the books has another category assigned).
Have you placed these rules BEFORE all other rules? The plugin walks through the rules one after the other and uses the first matching one. For this reason, free shipping rules typically need to be placed first.
Does your shipping method work with other rules? If so, then it is really the rules (as mentioned, probably the order of the rules). If not, then one typical mistake I often make is that when you create a new shippping method, you need to manually enable it. By default all new methods are disabled.
Best regards,
Reinhold