Nothing is like Sequence[]: it gets removed during evaluation. But there is one significant difference: it only gets removed from lists.
{{Nothing}, {Sequence[]}}
(* {{}, {}} *)
{foo[Nothing], foo[Sequence[]]}
(* {foo[Nothing], foo[]} *)
Update from @ilian
It only gets removed from lists is correct for Mathematica 10.4.0 and later; Nothing did get removed from associations in 10.2 and 10.3.
This makes it easier to work with Nothing than Sequence[] (or at least it requires a less complete understanding of the evaluation sequence before one can use it productively).
Example:
{1, 2, 3, 4} /. x_Integer :> If[OddQ[x], x, Sequence[]]
(* {1, Null, 3, Null} *)
Oops! Why didn't this remove the even numbers? It just replaced them with Null! This can be confusing for something not experienced with Sequence[]. The explanation is that Sequence[] gets removed from If before the evaluation of If starts, so we effectively end up with If[OddQ[x], x], which evaluates to Null. The traditional solution is If[OddQ[x], x, Unevaluated@Sequence[]]
With Nothing, we can simply use
{1, 2, 3, 4} /. x_Integer :> If[OddQ[x], x, Nothing]
This reads in a clear, intuitive way: "Replace odd numbers with themselves and even numbers with nothing." In the most common use case, i.e. list manipulation, it behave according to the most naive expectation.
Side note: Association[something] is not correct syntax in the sense that it does not evaluate to a true association data structure.
AssociationQ@Association[something]
(* False *)
Association["foo" -> something] does evaluate to a real association.
Since you mention the vanishing function ##&[], I want to point out an important difference between it and Sequence[]/Nothing:
Both Sequence[] and Nothing are removed at the beginning of the evaluation sequence, before any transformation rules are tried at all.
##&[] simply evaluates to Sequence[], which then is treated as usual. Thus it behaves the same as vanisher := Sequence[] would.
This causes differences like the following:
{Hold[Sequence[]], Hold[## &[]]}
(* {Hold[], Hold[(##1 &)[]]} *)
{{If[False, x, Sequence[]]}, {If[False, x, ## &[]]}}
(* {{Null}, {}} *)
Association[If[True, Nothing]]returns<||>. – Alexey Popkov Jun 24 '16 at 08:26