Investigué un poco, según otros comentarios - como usted dice, si el elemento no existe, funciona, pero si es nulo, no funciona. Aparentemente esto es por diseño.
Una sugerencia fue agregar el BsonIgnoreIfNull atributo a las matrices, lo que significará que su AddToSet funcionará.