I'm going to add a bit to my comment on the question, though this should be a self contained answer.
Motivation
The idea is that direct limits (colimits over a directed preorder) are good and have nice properties that general colimits do not have, like commuting with finite limits. They are also much more computable and understandable compared to general colimits.
However, this restricts our source of diagrams to be directed preorders. But there are circumstances, when we wish to use more general domain categories, and we think that they should have similar properties.
For example, coverings of topological spaces form a directed preorder under refinement, if we just declare a covering $\mathcal{U}$ to refine $\mathcal{V}$ if for all $U\in\newcommand\U{\mathcal{U}}\U$ there is some $V\in\newcommand\V{\mathcal{V}}\V$ with $U\subseteq V$.
However, this is maybe not the best way to think about the category of open covers, depending on the situation. Instead, we might want to keep track of a particular choice of $V$ and inclusion map $U\subseteq V$ for each $U$. Now we have a category of coverings under refinement, which might fail to be a preorder. For example, if $\V=\{A,B\}$, and some $U\in\U$ is a subset of $A\cap B$, then there are at least two refinement morphisms from $\U\to \V$ (assuming there are any at all). However, we expect colimits over the refinement category to have the same nice property as colimits over our refinement preorder that we started with.
Thus we need to generalize the notion of directedness from preorders to all categories in such a way that it specializes to directedness for preorders, and ideally preserves the nice properties that we want.
Filtered Categories and Directed Preorders
This gives rise to the notion of filtered categories.
Recall that a directed preorder is a (nonempty) preordered set with the property that for any $x$ and $y$, there exists $z$ with $z\ge x$ and $z\ge y$.
These assumptions translate into requirements 1 and 2 of directed categories.
We make the (harmless) assumption that a directed category $J$ be nonempty. (It's harmless because we're only excluding one category, whose colimit we know is the initial object, so it hardly hurts to exclude this case, and it might make stating theorems easier).
Requirement 2 says that for any objects $j$ and $j'$ we can find an object $k$ with $u:j\to k$ and $v:j'\to k$. For a preorder this precisely reduces to for all $x$ and $y$ we can find $z$ with $x\le z$ and $y\le z$, since a morphism in a preorder from $x$ to $z$ exists exactly when $x\le z$, and similarly for $y$ and $z$.
Requirement 3 is the new requirement, but we'll notice that it is trivially satisfied by preorders, since there are never two distinct parallel morphisms.
Thus a preorder is filtered if and only if it is directed.
Understanding Requirement 3
Why then do we include requirement 3? Well, it says that $u$ and $v$ can be coequalized by some arrow. What does this give us? Well suppose we have a colimit of a diagram $X$ over a filtered category $J$ in $\mathbf{Set}$.
For each $j\in J$, we have a set $X_j$, and for each $u:j\to k$ in $J$, we have a function $u_*:X_j\to X_k$. We want to understand the colimit of $X$. We know that the colimit is the quotient of the disjoint union $\coprod_{j\in J} X_j$ under the equivalence relation generated by $x\sim u_*x$ for all $j,k\in J$, $u:j\to k$, and $x\in X_j$.
For directed limits, we know that we can identify this relation with the following: $x\sim y$ for $x\in X_j$, $y\in X_k$ if there is some $l\in J$ with $u:j\to l$ and $v:k\to l$ such that $u_*x=v_*y$. We'd like this to also be the case for general filtered categories.
Certainly this relation is always contained in the relation generated by $x\sim u_*x$, so we just have to prove that if $x\sim y$ in the colimit for $x\in X_j$, $y\in X_k$, then we can find such an $l$ and morphisms $u$ and $v$.
Suppose then that we have $x\sim y$. This means that we have a zig-zag of morphisms
$$j=j_0\to j'_0 \leftarrow j_1\to j'_1 \leftarrow \cdots \to j'_{n-1} \leftarrow j_n=k$$
and elements $x_0,\ldots,x_n\in X_{j_0},\ldots,X_{j_n}$ such that pushing
$x_i$ and $x_{i+1}$ to $X_{j'_i}$ gives the same result.
We want to show that in fact we can always take $n=1$, and we'll prove this by using our assumptions to reduce $n$ by $1$ when $n\ge 2$.
Take $j'_{n-2}$ and $j'_{n-1}$ and find some $j''$ with morphisms $j'_{n-2}\to j''$ and
$j'_{n-1}\to j''$. We'd like to replace the
$$j_{n-2}\to j'_{n-2}\leftarrow j_{n-1} \to j'_{n-1}\leftarrow j_n$$
part of our zig-zag with
$$j_{n-2}\to j'_{n-2}\to j'' \leftarrow j'_{n-1}\leftarrow j_n,$$
which would give us a one shorter zig-zag, but we have a problem. We know pushing
$x_{n-2}$ and $x_{n-1}$ to $j'_{n-2}$ gives the same result, and pushing $x_{n-1}$ and $x_n$ to $j'_{n-1}$ gives the same result, but what about pushing $x_{n-2}$ and $x_n$ to $j''$?
Well, we don't know. For $x_{n-2}$, this is the same as pushing $x_{n-1}$ to $j'_{n-2}$ and then to $j''$, and for $x_n$, this is the same as pushing $x_{n-1}$ to $j'_{n-1}$ and then to $j''$, but we don't know that these have the same result.
However, these are parallel maps from $j_{n-1}$ to $j''$, which means we can find some map from $j''$ to some $j^{(3)}$ which makes these two maps equal. Then if we use $j^{(3)}$ instead of $j''$, we do get a zig-zag that has length $n-1$, as desired.
This completes the proof, although admittedly, it may be very unclear, since I can't draw the pictures that I have in my head on this platform.
Final comment, a reinterpretation of the axioms
An equivalent set of requirements for a directed category $J$ is the following
- $J$ is nonempty
- For any finite diagram $X$ in $J$, there is a cocone.
This is because Requirement 2 in your version is essentially saying finite product diagrams have cocones and Requirement 3 is saying coequalizer diagrams have cocones. Putting these together, the same proof idea as (binary coproducts + coequalizers = finitely cocomplete) gives that all finite diagrams have cocones.
This also drastically simplifies the final part of my proof above. We can just take a cocone to the zig-zag, and it will automatically be the objects and morphisms we are looking for.