Something's fishy in your example; I can't reproduce it. But for the git background, which should prove sufficient to see what's going on yourself. From Git Book:
You can also specify a number after the ^ – for example, d921970^2 means “the second parent of d921970.” This syntax is useful only for merge commits, which have more than one parent. The first parent is the branch you were on when you merged, and the second is the commit on the branch that you merged in
and
The other main ancestry specification is the ~ (tilde). This also refers to the first parent, so HEAD~ and HEAD^ are equivalent. The difference becomes apparent when you specify a number. HEAD~2 means “the first parent of the first parent,” or “the grandparent” — it traverses the first parents the number of times you specify.
Thus:
In that case head has two parents. So which one does HEAD~1 point to?
It refers to the first parent of HEAD - i.e. the branch you were on when you merged. There is no way to access the second parent (the merged-in branch) by the tilde syntax alone.