Algorithm for finding cycles in a hypergraph
Yes, there is a simple and efficient algorithm for this.

Given a hypergraph $H=(V,E)$, construct an undirected graph $G$ as follows: add the edge $(u,v)$ to $G$ if there is a hyperedge that contains both $u$ and $v$.  Find the connected components of $G$.

Your condition (ii) is now equivalent to: $v_0,v_1,\dots,v_n$ are all in the same connected component.  Thus, you want to find a subset of vertices that are all in the same connected component, but aren't contained in any hyperedge.

This leads to a simple algorithm.  Iterate over the connected components of $G$.  Let $S$ denote the set of vertices in one connected component of $G$.  Test whether $S$ is contained in any hyperedge of $H$.  If it isn't, then the hypergraph has a cycle (any cycle in $G$ that visits each vertex of $S$ at least once, and doesn't visit any vertex outside $S$, is a cycle in $H$).  If after testing all the connected components of $G$, none of them are a valid cycle, then the hypergraph doesn't have any cycles.

(You don't need to test any of the subsets of $S$.  If $S$ isn't a cycle, then none of the subsets will form a cycle, either.  Why?  If $S$ violates condition (i), then every subset of $S$ will violate condition (i), too.)