First, note that IS_IN_SET requires an item in the set, so no need for IS_NOT_EMPTY with it. If you are using IS_IN_SET with multiple=True, then you are allowed to select zero items, but you can instead set multiple=(1, len(the_set)), and it will require at least one selection.
Also, even if the above were not the case, you wouldn't want IS_NOT_EMPTY_OR -- you would want something like IS_NOT_EMPTY_AND (i.e., you want the value to be non-empty and within your set). However, you can already do the latter by simply putting multiple validators in a list: [IS_NOT_EMPTY(), IS_IN_SET(...)].
Anthony