Also works:
s.where(lambda x: x).dropna().index, and
it has the advantage of being easy to chain pipe - if your series is being computed on the fly, you don't need to assign it to a variable.
Note that if s is computed from r: s = cond(r)
than you can also use: r.where(lambda x: cond(x)).dropna().index.
You can use pipe or loc to chain the operation, this is helpful when s is an intermediate result and you don't want to name it.
s = pd.Series([True, False, True, True, False, False, False, True], index=list('ABCDEFGH'))
out = s.pipe(lambda s_: s_[s_].index)
# or
out = s.pipe(lambda s_: s_[s_]).index
# or
out = s.loc[lambda s_: s_].index