If you are talking about simple graphs with no loops or directed edges, then usually $N(u)$ denotes the open neighborhood of $u$, which means all the actual neighbors of $u$ but not $u$ itself. And, $N[u]$ denotes the closed neighborhood of $u$, which means all the neighbors of $u$ AND $u$ itself.
In any case, if loops are allowed or not, the neighbors of a vertex mean the vertices that are adjacent to that vertex. So, if the vertex is connected to itself via a loop, then the vertex would be its own neighbor. And, if the vertex is not connected to itself via a loop, then it is not its own neighbor.
If you are talking directed graphs, then you talk about the out-neighborhood and the in-neighborhoods separately. That is, the out-neighborhood, $N^+(v)$ is the set of vertices adjacent from $v$ (from meaning directed away from $v$), and the in-neighborhood, $N^-(v)$ is the set of vertices adjacent to $v$ (to meaning directed toward $v$). If the graph is directed and allows loops, then an edge from $v$ to $v$ would mean $v$ would be in both of these neighborhoods.
I'm not sure if a neighborhood of a set of vertices (bigger than 1) is very standard. Maybe???
In topology, a neighborhood of a point is any open set containing that point. I haven't studied this at all but you could define a topology based on this. Let us call the empty set of vertices open. Let us call the (open) neighborhood of any vertex to be open. And, let us call any union of open sets open, and any finite intersection of open sets open. This is definitely a topology on the set of vertices of a graph.
For example, if your graph is $K_n$, this leads to open sets being $V(K_n)$ and $\emptyset$ and nothing more. If your graph is the empty graph, then you have the discrete topology, i.e., any subset of the vertices is open.