For me, the most useful kind of instance would be symbolic booleans like SBV's SBool type.
A real bonus would be making if-then-else polymorphic as well—although that doesn't really fit with the lattice abstraction. I know we can do that with RebindableSyntax, but that is a *heavyweight* extension to enable!
Breaking boolean behavior up into a few different classes would work for this application. Boolean algebras for and/not/etc, Conditional for ifThenElse and maybe even Boolish or something for True and False pattern synonyms (or just true and false constants).
I don't think all of this belongs in base, but making booleans and boolean operators more polymorphic would definitely be useful.