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}}]]]