The halting problem is recursively enumerable, but not co-recursively enumerable. That is, it is recognizable, but it's compliment is not. You are sure to halt on a string in the language, but not on a string that is not in the language.
Implication of not $r.e.$ and not $co\text{-}r.e$ propagate from left to right over a reduction. Implication of $r.e.$ and $co\text{-}r.e$ propagate from right to left over a reduction.
Because the halting problem is $r.e.$, any problem that reduces to it is $r.e.$ So if all undecidable languages reduced to the halting problem, then all undecidable languages would be $r.e.$, but some undecidable languages are neither $r.e.$ nor $\text{co-r.e.}$, and some are $co\text{-}r.e$ but not $r.e.$
An example of an undecidable language that doesn't reduce to $\text{HALT}$ is $\text{EMPTY} = \{ <M> : \text{M is a Turing machine and } L(M) = \emptyset\}$
$\text{EMPTY}$ is a language which is $co\text{-}r.e$, but not $r.e.$. This is because as soon as you find a string that $M$ accepts, you know that L(M) is not empty, and if a string is in $L(M)$ it is guaranteed to be accepted and therefore halt, in a finite amount of time. But if $M$ doesn't accept any strings, you may never know that as the machine may diverge or go into an infinite loop on a string and never halt.
Another language that doesn't reduce to $\text{HALT}$ is $ FINITE = \{<M> : M \text{ is a Turing machine and L(M) is finite } \}$, which is neither $r.e.$ nor $\text{co-r.e.}$