The difference is huge.
$user->exists contains true if the model is the real model taken from the database. For example, if you create $user = new User and set some properties to it, $user->exists will contain false, as long as you don't do $user->save(). Once it's saved or obtained from database, $model->exists will be true.
On the other hand, $user->exists() is a builder's method. It runs SQL's EXISTS query. If you run $user->exists(), you will generate a query:
select exists(select * from `users`) as `exists`
That will return 1 if any user exists in the database. exists() method feels more natural in Eloquent calls, like:
$thereAreKids = User::where('age', '<', 18)->exists();