I assume you do know that to create a polyline, you need AT LEAST 2 points. That is, the coordinate array that is passed to AcadModelSpace.AddLightWeightPolyline() method MUST HAVE at least 4 elements.
In your code, each loop in the For...Next, you obtain 1 point (one x value, one y value), and then you try to create a LWPolyline with this ONLY point. I did not see you have "On Error Resume Next", and wondering why the AddLightWeightPolyline(coords) did not raise exception, as it should.
BTW, this line
If i = npts + 1 Then Exit For
is completely unnecessary: the "For i to npts" already guarantees that the i will not go past npts!
I suspect that the x/y values in the recordset is meant to a single polyline with many vertices, and you use RecordSet filter to get points in order (you may sort the recordset in SQL statement rather than filter the recordset in each For... loop for better performance). If this is the case, code would be something like:
Dim coords() as double
Dim i as Integer
Dim j As Integer
'' Open and get RecordSet
For i = 1 to npts
''Get 1 point
rsPP.Filter = "pt='" & i & "'"
''Add the point's X value and add it to the coordinate array
Redim Preserve coords(j)
coords(j)=rsPP!cx
j = j + 1
''Add the point's Y value and add it to the coordinate array
Redim Preserve coords(j)
coords(j)=rsPP!cy
j = j + 1
Next
'' Now you create a polyline with Vertex/point count = npts
'' with coordinate array with element count = 2 x npts
Set pl = ThisDrawing.AddLightWeightPolyline(coords)
HTH