Your example shows a method being overridden, which is important here.
By having the method return a ListenableFuture, the author of the interface or superclass allows implementations to return asynchronously. Likewise, callers of the method know to tolerate an asynchronous return value.
In return, the implementation promises to be non-blocking. Because it returns a ListenableFuture, it has the opportunity to shift any expensive work off to a background thread, use an asynchronous network call, or whatever.
It doesn't have to run asynchronously, though. If the implementation is non-blocking and will complete quickly, there's absolutely no reason to force in a thread-switch just to satisfy some expectation that the work will complete asynchronously. And in that case, immediateFuture() is a good way to conform to the interface.
So, is your example an antipattern? It depends how expensive syncMethod() is. If it's fast (non-blocking, and doesn't do some lengthy computation) then the example is fine. If it's slow (perhaps it waits on the network, or factorizes a very large number) then yes, it's an antipattern.