First introduced in 1965 in ALGOL W, the null value was created as a value with no value. If this sounds counterintuitive, that's because it is. Traditional Boolean logic, which is the basis for modern computing, is rooted in the binary nature of true and false values. Boolean logic corresponds perfectly to the binary 1s and 0s that computer hardware is based on, true = 1 and false = 0. Using Boolean logic, the existence of a value can easily be represented as true or false. Numerically speaking it is also clear that if a value does not exist then there are no values or 0 values.
However, rather than utilizing Boolean logic as specified above, a null value is used in most programming languages. Proponents of the null value will say that it makes an important distinction between a variable's existence and its value, both of which could be interpreted as a 0 or 1. But by asserting that any binary value can also always potentially have a third possible state of null, they are sustaining what is in effect a ternary logic system which is an extension of Boolean logic. The fact that it is an extension is what enables programmers trained in Boolean logic and binary truth tables to adapt to the existence of null values. Despite this, it has needlessly complicated the very fabric of how we program by forcing us to build the bureaucracy necessary to handle and avoid the unexpected behavior that arises with null values.
The sheer number of problems that arise from the existence of null values have led designers of some modern programming languages to come up with workarounds. Some have been advantageous, like optional variables. Others, have simply made the problem worse, like JavaScript's undefined value that exists in addition to null. No one has yet chosen to omit null completely though, which is unfortunate because I believe that is the only way to truly avoid the unpredictable consequences of null values.
And how do we deal with variables that have no value? Simple, all variables must be initialized when they are declared. After all, why have a variable with no value? Isn't that why they invented the concept of zero thousands of years ago?