When are the planets occulted by the sun? There are numerous lists available of past and future planetary transits and occultations, but I can't find any that list transits behind the sun.

Do the planets in our solar system ever pass directly behind the sun, from Earth's perspective? Is there a special name for this kind of occultation, and is there a list of these events?
The search for sungrazing comets requires looking very close to the Sun for faint objects. This requires a chronograph and for faint objects is better done above the atmosphere. The SOHO spacecraft near the Sun-Earth L1 point does this nicely.
Here is a GIF I made for this answer. In addition to some comets you can see Venus on its approach to occultation by the Sun in 2016. Seeing the Pleides so close to the Sun is exciting as well!

These LASCO C3 images from SOHO were downloaded sohodata.nascom.nasa.gov/cgi-bin/data_query. The square frame is about 15.9 degrees wide.


You can see many trajectories for 2016 in http://sungrazer.nrl.navy.mil/index.php?p=transits/transits_2016 (shown below) and replacing 2016 with other years works as well.
The problem with this page is that while it may flag likely occultations, it does not unambiguously predict them, so you may need to use another source for accurate predictions.

Here's a quick calculation for 2016 using the Python package Skyfield. It seems both Mercury and Venus were able to hide behind the Sun.

Jackpot!  Mercury, Jupiter, Saturn, Mercury


import numpy as np
import matplotlib.pyplot as plt
from skyfield.api import Loader, Topos, EarthSatellite

halfpi, pi, twopi = [f*np.pi for f in (0.5, 1, 2)] 
degs, rads        = 180/pi, pi/180
Rsun              = 696392. # https://en.wikipedia.org/wiki/Sun

load    = Loader('~/Documents/fishing/SkyData') 
ts      = load.timescale()
data    = load('de421.bsp')

names   = ('Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn')
objects = [data[name + ' barycenter'] for name in names]
earth   = data['Earth']
sun     = data['Sun']

ts      = load.timescale()
days    = np.arange(1, 366, 0.1)
times   = ts.utc(2016, 1, days)

observations = [earth.at(times).observe(obj) for obj in objects]
sunobs       =  earth.at(times).observe(sun)
sundist      = sunobs.distance().km
separations  = [obs.separation_from(sunobs) for obs in observations]

sunhalfangledegs     = degs*np.arctan2(Rsun, sundist)
sunhalfangledegsmin  = sunhalfangledegs.min()

if True:
    plt.figure()
    for i, (name, sep) in enumerate(zip(names, separations)):
        plt.subplot(5, 1, i+1)
        angle = degs*sep.radians
        minangle = angle.min()
        plt.plot(days, angle)
        plt.ylim(0, None)
        ymin, ymax = plt.ylim()
        ymax = 5*max(ymin, minangle, sunhalfangledegsmin)
        plt.ylim(0, ymax)
        plt.plot(days, sunhalfangledegs, '-r', linewidth=0.5)
        plt.title('observed Sun-Earth-' + name + ' angle (degs)')
    plt.show()