Разрових се, според някои други коментари - както казваш, ако елементът не съществува, той работи, но ако е нулев - не работи. Очевидно това е замислено.
Едно предложение беше да се добави BsonIgnoreIfNull атрибут към масиви, което ще означава, че тогава вашият AddToSet ще работи.