What is the difference between language of empty string and empty set language?
The situation is the same with the emptyset and the number $0$ (zero).
$0$ is a number and the set $\{ 0 \}$ has one member, while the emptyset has no members at all.
Numbers are used to perform operations like "counting" objects; in order to correctly describe these operations, it is useful to introduce a number ($0$) that counts no objects.
In the same way, in order to describe the operations performed on strings, it is useful to introduce the string ($\epsilon$) with no symbols (that has $lenght=0$).
Here is a program that accepts the language that contains only the empty string:
s = get_input();
if (s == "") then ACCEPT;
else REJECT;
Here is a program that accepts the empty language:
s = get_input();
REJECT;
They are not the same program! The first one accepts the empty string; the second does not.