Чем отличаются эти два типа записи?
Эти две записи полностью эквивалентны, в чём можно убедиться через sharplab, выбрал декомпиляцию в более низкоуровневый C#.
Во втором случае используется Object Initializer синтаксис.
Второй более идиоматичный и ИМХО более читабельный.
Неправильный с точки зрения синтаксиса код не компилируется, а значит не имеет права на жизнь, поэтому и обсуждать его не имело бы смысл.
Отличают эти записи способом записи добавления элементов в массивы при инициализации, как ни странно. 
Никакой программной разницы в них нет, они всё равно превратиться в методы .Add()