Nil-слайс: указатель nil, len 0, cap 0. Пустой слайс s := []int{} или make([]int, 0) - ненулевой указатель (может указывать на пустой или фиктивный массив), len 0, cap 0. Для len, append, range поведение одинаковое. Отличие проявляется при сериализации (nil -> null в JSON) и при сравнении с nil.