Forest is designed to draw trees. If what you need is mostly a tree, you can still use it with a bit of manual intervention. If you really want to draw a generic graph, though, it is better to use something designed for that.
In case you want basically-a-tree-with-the-odd-non-tree-bit, here's one solution.
\documentclass[border=10pt,multi,tikz]{standalone}
\usepackage{forest}
\begin{document}
\begin{forest}
for tree={%
circle,
draw,
edge={->},
}
[1, tikz+={\draw () edge [loop above] ();}
[2, edge path'={(!u.parent anchor) edge [bend right, <-] (.north) (!u.parent anchor) edge [bend left] (.north east)}]
[3]
]
\end{forest}
\end{document}

If you need to draw generic graphs, TikZ offers built-in graph-drawing facilities, courtesy of LuaTeX. Here's one using the binary tree layout
, which is not terribly fussy about whether the specification is technically a tree or not, as the following shows. Note that this code must be compiled with LuaTeX - it will not work with other engines.
\RequirePackage{luatex85}
\documentclass[border=10pt,multi,tikz]{standalone}
\usetikzlibrary{graphs,graphdrawing}
\usegdlibrary{trees}
\begin{document}
\begin{tikzpicture}
\graph
[
binary tree layout,
nodes={draw, circle},
]
{
1 ->[bend right] 2 -> [bend right] 1 ->[loop above] 1 -> 3;
}
;
\end{tikzpicture}
\end{document}
