Note about your suggested naive quadratic solution: You'll need to consider each point as either an interval start or an interval end.
I'm not sure that this is the optimal solution, but it is better than the naive quadratic:
Let's name the points {P1, ..., Pn}.
Since any point must be covered by at least one interval, find all intervals that may cover point P1 (Assume that an interval either starts at Pi, or ends at Pi). For each of these intervals, continue greedily, as you would on a linear timeline.
To optimize it further, instead of starting with P1, we'll need to find the best start-point - that would be the point that may be covered by the minimal number of intervals. I don't know if we can do this in linear time, but a good heuristic may be to start with the point that the sum of its distances from its two neighbors is maximal.
Edit: An O(nlogn) way for finding the best starting point:
We can build a list of possible 2n segments (for any point Pi an interval may either starts at Pi or ends at Pi). Next, insert these intervals into a segment tree.
Don't use a regular segment tree, but instead of storing the intervals in the canonical subsets, simply store the number of them (See the notes section in Wikipedia's article).
Tree construction would take O(nlogn) time. Now, for each point Pi, count the number of segments (intervals) it falls into. This would take O(logn) for each point, or O(nlogn) total.
Select the point with the minimal number of intervals. For each of the intervals continue with the greedy approach, as described above.