why do they use NULL in VHDL code
As @BrianDrummond stated... From IEEE 1076:


  10.14 Null statement
  
  A null statement performs no action.
  
  null_statement ::=
      [ label : ] null ;
  
  The execution of the null statement has no effect other than to pass on to the next statement.
  
  NOTE—The null statement can be used to specify explicitly that no action is to be performed when certain conditions
  are true, although it is never mandatory for this (or any other) purpose. This is particularly useful in conjunction with the
  case statement, in which all possible values of the case expression shall be covered by choices; for certain choices, it
  may be that no action is required