The first predicate does not work because not all Event objects respond to the "present" selector. The second predicate does not work because you cannot use block-based (or any Objective-C based) predicates in a Core Data fetch request.
The only solution is probably to add a (string or integer) "type" attribute to your "Event" entity, so that you can filter with a predicate like "lastEvent.type != 'Wedding'"
.