The listofitems package can parse such lists.
\documentclass{article}
\usepackage{listofitems}
\begin{document}
\setsepchar{;/,}
\readlist\mypoints{-1, 3; 2, 7; 3, 8}
Second row elements are \mypoints[2,1], \mypoints[2,2].
\foreachitem\row\in\mypoints[]{%
\foreachitem\col\in\mypoints[\rowcnt]{%
Row \rowcnt, Column \colcnt{} is $\mypoints[\rowcnt,\colcnt]$\par
}
}
\end{document}

If there is the requirement to have \points nested in the way described by the OP, then additional unpacking is needed to \reduce \points into \tmp, which takes the form of the above example:
\documentclass{article}
\usepackage{listofitems}
\def\reduce#1{\expandafter\reduceaux#1,\relax}
\def\reduceaux#1,#2\relax{\reduceauxaux#1%
\ifx\relax#2\relax\else;\reduceaux#2\relax\fi%
}
\def\reduceauxaux#1{\reduceauxauxaux#1}
\def\reduceauxauxaux#1,#2{#1,#2}
\begin{document}
\def\points{{ {-1, 3}, {2, 7}, {3, 8} }}
\edef\tmp{\expandafter\reduce\points}
\detokenize\expandafter{\tmp}% THIS SHOWS CONVERSION OF \points INTO \tmp
\setsepchar{;/,}
\readlist\mypoints{\tmp}
Second row elements are \mypoints[2,1], \mypoints[2,2].
\foreachitem\row\in\mypoints[]{%
\foreachitem\col\in\mypoints[\rowcnt]{%
Row \rowcnt, Column \colcnt{} is $\mypoints[\rowcnt,\colcnt]$\par
}
}
\end{document}
;-)– egreg Dec 02 '17 at 00:37