Do you want something like this?

\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{chains}
\begin{document}
\tikzset{
myNode/.style={align=center},
}
\begin{tikzpicture}[start chain=chain]
\foreach \i in {0,1}
\node [on chain, myNode] (Li) at (0,\i) {\pgfmathparse{array({"$f_1(x)$", "$f_2(x)$"},\i)}\pgfmathresult\\\pgfmathparse{array({"$g_1(x)$", "$g_2(x)$"},\i)}\pgfmathresult};
\end{tikzpicture}
\end{document}
EDIT
Note that this does exactly the same thing but with your code and without array because the latter introduces complications (but would presumably be more efficient).
It is still using the ith element from one list and combining it with the ith element from another list. Although you say that is not what you mean, it is rather hard to see what else could be intended here. Of course, you could manipulate the variables to take, say, the ith element from list one and the *i+3*th element from list two, and then use the first elements in list two to match the final elements in list one. Those are still 'simple indices', though.
\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{chains,shapes.geometric}
\begin{document}
\tikzset{
myNode/.style={on chain, align=center,shape=ellipse, draw, minimum width=3cm, minimum height=1cm, inner ysep=0pt},
}
\begin{tikzpicture}
\def\firstlist{$(1 - x_a) (1 - x_b) $, $ (1 - x_1) (1 - x_b) $, $ x_a (1 - x_b) $, $ x_1 (1 - x_2) $, $ x_1 x_b $, $ (1 - x_1)(1 - x_2) $, $ (x_1)(x_2) $, $ (1 - x_1) (x_b) $, $ x_a x_b $, $ x_1(1 - x_b)$}
\def\secondlist{$(k + 4)v_1 + (-2k + -5)v_2 + (k + 2)v_3 \ge 1$, $(k + 3)v_1 + (-2k + -3)v_2 + (k + 1)v_3 \ge 1$, $-v_1 + (k + 3)v_2 + (-k + -2)v_3 \ge 0$, $kv_2 + (-k + 0)v_3 \ge 0$, $(k + 1) v_3 \ge 0$, $(k + 2)v_1 + (-2k + -1)v_2 + (k + 0)v_3 \ge 1$, $(1)v_2 + (k)v_3 \ge 0$, $-v_1 + (k + 2)v_2 + (-k + -1)v_3 \ge 0$, $-v_2 + (k + 2)v_3 \ge 0$, $(k + 1)v_2 + (-k + -1)v_3 \ge 0$}
\begin{scope}
[start chain=going below, node distance=2cm]
\foreach \i [count=\c] in \firstlist
\foreach \j [count=\d] in \secondlist
{
\ifnum\c=\d \node (L\c) [on chain, myNode] at (0, -3-\c) {\i\\\j};\fi
};;
\end{scope}
\end{tikzpicture}
\end{document}

But probably something like this would be better?

\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{chains,shapes.geometric}
\begin{document}
\tikzset{
myNode/.style={align=center,shape=ellipse, draw, minimum width=3cm, minimum height=1cm, inner ysep=0pt},
}
\begin{tikzpicture}
\def\firstlist{$(1 - x_a) (1 - x_b) $, $ (1 - x_1) (1 - x_b) $, $ x_a (1 - x_b) $, $ x_1 (1 - x_2) $, $ x_1 x_b $, $ (1 - x_1)(1 - x_2) $, $ (x_1)(x_2) $, $ (1 - x_1) (x_b) $, $ x_a x_b $, $ x_1(1 - x_b)$}
\def\secondlist{$(k + 4)v_1 + (-2k + -5)v_2 + (k + 2)v_3 \ge 1$, $(k + 3)v_1 + (-2k + -3)v_2 + (k + 1)v_3 \ge 1$, $-v_1 + (k + 3)v_2 + (-k + -2)v_3 \ge 0$, $kv_2 + (-k + 0)v_3 \ge 0$, $(k + 1) v_3 \ge 0$, $(k + 2)v_1 + (-2k + -1)v_2 + (k + 0)v_3 \ge 1$, $(1)v_2 + (k)v_3 \ge 0$, $-v_1 + (k + 2)v_2 + (-k + -1)v_3 \ge 0$, $-v_2 + (k + 2)v_3 \ge 0$, $(k + 1)v_2 + (-k + -1)v_3 \ge 0$}
\begin{scope}
[start chain=going below, node distance=2cm]
\foreach \i [count=\c] in \firstlist
\foreach \j [count=\d] in \secondlist
{
\pgfmathsetmacro\cbelow{-3-2*\c}
\ifnum\c=\d
\node (L\c) [myNode] at (0,\cbelow) {\i\\\j};
\chainin (L\c);
\fi
};;
\end{scope}
\end{tikzpicture}
\end{document}
EDIT EDIT
Note that if you can use lists with quoted values, you can use my original answer, thus running only n rather than n^2 iterations. For example:
\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{chains,shapes.geometric}
\begin{document}
\tikzset{
myNode/.style={align=center,shape=ellipse, draw, minimum width=3cm, minimum height=1cm, inner ysep=0pt},
}
\begin{tikzpicture}
\def\firstlist{"$(1 - x_a) (1 - x_b) $", "$ (1 - x_1) (1 - x_b) $", "$ x_a (1 - x_b) $", "$ x_1 (1 - x_2) $", "$ x_1 x_b $", "$ (1 - x_1)(1 - x_2) $", "$ (x_1)(x_2) $", "$ (1 - x_1) (x_b) $", "$ x_a x_b $", "$ x_1(1 - x_b)$"}
\def\secondlist{"$(k + 4)v_1 + (-2k + -5)v_2 + (k + 2)v_3 \ge 1$", "$(k + 3)v_1 + (-2k + -3)v_2 + (k + 1)v_3 \ge 1$", "$-v_1 + (k + 3)v_2 + (-k + -2)v_3 \ge 0$", "$kv_2 + (-k + 0)v_3 \ge 0$", "$(k + 1) v_3 \ge 0$", "$(k + 2)v_1 + (-2k + -1)v_2 + (k + 0)v_3 \ge 1$", "$(1)v_2 + (k)v_3 \ge 0$", "$-v_1 + (k + 2)v_2 + (-k + -1)v_3 \ge 0$", "$-v_2 + (k + 2)v_3 \ge 0$", "$(k + 1)v_2 + (-k + -1)v_3 \ge 0$"}
\begin{scope}
[start chain=going below, node distance=2cm]
\foreach \i [evaluate=\i as \c using {array({\firstlist},\i)},evaluate=\i as \d using {array({\secondlist},\i)}] in {0,1,2,...,9}
{
\pgfmathsetmacro\ibelow{-3-2*\i}
\node (L\i) [myNode] at (0,\ibelow) {\c\\\d};
\chainin (L\i);
};
\end{scope}
\end{tikzpicture}
\end{document}
also produces

Note that I'm assuming you are chaining the nodes for further use. The chaining isn't handling the placement here at all.
\documentclassand end\end{document}. – cfr Dec 11 '15 at 22:06array(<list>,\c)is not what you want. You say in comments that it is 'not a simple index' but you have 1 dimensional arrays, so how can it be anything but a simple index? – cfr Dec 11 '15 at 23:00