Are indexes unnecessary for columnar database?
If you want to scan a subset of all data stored you need some kind of indexing structure. It does not have to be a B-tree. In a certain sense, partitioning or segment elimination is also a kind of indexing.

There is nothing intrinsically preventing a columnar database to be stored in a sorted (or roughly sorted way). This would allow seeks to happen.

That said, not all columnar databases provide the ability to scan a subset of the data stored selected by some predicate. This is an implementation issue, not a limitation of the columnar model.