Вы выставляете max-height равным 600, в то время как высота элемента - всего 50. Так что пока max-height уменьшается с 600 до 50, внешне ничего не меняется.
UPD. Как исправить. Могу предложить два варианта:
1) Менять max-height не у ul, а у li. Это позволит назначить конкретную высоту элементов. Типа
так.
2) Для открытого состояния также определить transition: max-height. Подобрать временные функции так, чтобы при открытии списка сначала он разворачивался медленно, а в конце быстро. А при закрытии наоборот - сначала быстро, затем медленно. Типа
так.