To avoid converting to str and actually use the lists, you can do this:
df[df['donation_orgs'].map(lambda d: len(d)) > 0]
It maps the donation_orgs column to the length of the lists of each row and keeps only the ones that have at least one element, filtering out empty lists.
It returns
Out[1]:
donation_context donation_orgs
1 [In lieu of flowers , memorial donations] [the research of Dr.]
as expected.