The existence of a null value isn't a billion dollar mistake. The issue is when static type systems allow null anywhere.
Even some dynamic languages don't have a null value. For example, some lisps only have the empty list, which they use as a null-like value by convention.