Gotcha. Yeah the semi-colon means you have a CompoundExpression, and only the last part of a compound expression gets "returned". I would just put in an If expression and just copy-paste the Graphics bit (actually, it'd be better to assign it to a variable, but whatever). You could even add a debug variable to the Manipulate. Like this:
With[{xCoords = {28, 39, 48, 1, 4, 70, 86, 83, 14, 23},
yCoords = {36, 76, 41, 56, 39, 6, 83, 7, 59, 33}},
With[{pts = Transpose[{xCoords, yCoords}]},
Manipulate[
If[debugQ,
Grid[{{"pointSubRange", pointSubRange}, {"pointCount",
Abs[Subtract @@ pointSubRange]}, {"allPts",
pts}, {"selectedPts",
Take[pts, pointSubRange]}, {"splineDegree",
splineDegree}, {"groupedPoints",
Partition[pts, UpTo[groupSize]]}, {"lineThickness",
lineThickness}, {"aspectRatio", aspectRatio}, {"curveType",
curveType}, {"splineClosedQ", splineClosedQ}, {"showPointsQ",
showPointsQ}, {Graphics[{Thickness[lineThickness],
curveType[
Partition[Take[pts, pointSubRange], UpTo[groupSize]],
SplineDegree -> splineDegree,
SplineClosed -> splineClosedQ], Red,
If[showPointsQ, Point[pts], Nothing]}], SpanFromLeft}}],
Graphics[{Thickness[lineThickness],
curveType[Partition[Take[pts, pointSubRange], UpTo[groupSize]],
SplineDegree -> splineDegree, SplineClosed -> splineClosedQ],
Red, If[showPointsQ, Point[pts], Nothing]}]], {pointSubRange, 1,
Length@pts, 1, ControlType -> IntervalSlider}, {splineDegree, 1,
Length@pts, 1}, {groupSize, 2, Length@pts, 1}, {lineThickness,
0.005, 0.05}, {aspectRatio, .1,
10, .1}, {curveType, {BSplineCurve,
BezierCurve}}, {splineClosedQ, {True,
False}}, {showPointsQ, {True, False}},
{debugQ, {False, True}}]]]