I don't see a way to do this using Bindings API only. ObservableList doesn't have a property empty, so you can't use
Bindings.select(obp, "empty").isEqualTo(true)
and
ObjectBinding<ObservableList<String>> lstBinding = Bindings.select(obp);
hasStuff.bind(lstBinding.isNotNull().and(lstBinding.isNotEqualTo(Collections.EMPTY_LIST)));
doesn't work since it only updates when the list changes, but not when it's contents change (i.e. the third assertion fails).
But the custom chain of bindings you have to create is very simple:
SimpleListProperty lstProp = new SimpleListProperty();
lstProp.bind(obp);
hasStuff.bind(lstProp.emptyProperty());