Is it a yellow triangle warning message or a blue dot message? If it's the yellow triangle, then the formula won't work. If it's the blue dot, then it just means that delegation won't work -- which makes sense because in is only delegated for SQL Server and for Salesforce. Also, in case you didn't know: when a function isn't delegable, only the first 500 records in the data source will be calculated and such.
And I also took a beginner programming class in C++ this semester (I'm a student), so this boolean logic isn't that new to me.
tl;dr The Not operator only reverses a boolean value. i.e. Turns True to False, and turns False to True.
This bit of code, without the ! --
( ID in Filter( 'Attended Event',
PrimaryID = eventGallery.Selected.PrimaryID
returns the list of participants that attended an event. Note that if a certain participant has attended the event, the condition evaluates to true. If a certain participant has NOT attended the event, the condition evaluates to false.
What we want is to negate the condition. i.e. If a certain participant has attended the event, condition has to evaluate to false. If a certain participant has NOT attended the event, condition has to evaluate to true. So, I used the Not operator to get the inverse of the condition given above.
And don't worry about not finding the appropriate documentation. PA suffers from a severe lack of good documentation (many people have complained about it). If anything's not clear, then just ask in this community. I've seen more trivial problems.