Finding all "essential" packages with apt
You can list all essential packages using aptitude search '?essential'
or dpkg-query -Wf '${Package;-40}${Essential}\n' | grep yes
.
Additionally there are also several packages with priority required that you shouldn't remove, too: dpkg-query -Wf '${Package;-40}${Priority}\n' | grep -E "required"
For your information, Essential and Priority are fields in the control file of a package.
aptitude search ~E
for other search patterns you can look in aptitude doc.