Do you want your sentences to be ambiguous? Apparently so, as I'm sure you know of ways to word this so as to make your exact meaning crystal clear. However, I'm not sure I'd call any of your variations ambiguous.
Let's try something just for fun. Let's see what happens if we take the second clause of each of your examples and make it a stand-alone sentence. I'm going to change the wording slightly to lessen the sense of there being an antecedent.
a': The second song of the concert wasn't so good.
b': The second song of the concert wasn't quite so good.
c': The second song of the concert wasn't that good.
The first thing we notice is that (b') doesn't work at all. There needs to be a comparator. The song must be "not quite so good" as something else.
Furthermore, "not quite" carries the sense of "almost". If I say that the ladder doesn't reach the roof, the roof might be ten meters high and the ladder anywhere from one to nine meters long. But if I say that the ladder doesn't quite reach the roof, it means that it almost reaches the roof, but falls slightly short.
It becomes clear, then, that (b), as originally written, means that the second song was actually very good indeed, just not quite as good as the first one. In fact, if we eliminate the word "but":
b'': The first song was excellent; the second one wasn't quite so good.
it could be understood to mean that both songs are truly excellent, but the first is the better of the two.
In (a') and (c'), "so" and "that" can both be replaced with "very". But idiomatically, "not very good" doesn't mean "good, but not exceedingly so". It's an understated way of saying anything from "OK, I suppose" to "truly awful". Consider this old nursery rhyme:
Fuzzy Wuzzy was a bear.
Fuzzy Wuzzy had no hair.
Fuzzy Wuzzy wasn't very fuzzy, was he?
Since Fuzzy Wuzzy had no hair, it is clear that "not very fuzzy", here, means "not fuzzy at all".
But if we say that the second song wasn't very good, does that mean that it was the worst song of the concert? No. In (a') and (c'), a statement is being made about the second song only, not about how it compares to anything else. It might have been the best song of the entire concert. But it still wasn't very good.
Does that mean that (a') and (c') are ambiguous, because they may or may not mean that the second song was the worst? I don't think so. If I say "David is a man.", I'm not making it clear whether or not Gustavo is also a man. Does that make the sentence ambiguous?
So back to your original examples. In all three, the second song is being contrasted with the first, and it is clear that the first song is excellent and the second is something less than excellent. And as we've established, in (b), the second is only slightly less than excellent.
In both (a) and (c), "so" and "that" can mean either "very", as in (a') and (c'), or they can mean "as". In my mind, "so" is more likely to mean "as" and "that" is more likely to mean "very", but in both cases either meaning is possible. So to simplify things, let's talk about examples with "as" and "very" instead of "so" and "that":
d: The first song was excellent, but the second one wasn't as good.
e: The first song was excellent, but the second one wasn't very good.
Again, both mean that the second song is something less than excellent. How much less? As per our discussion of (a') and (c'), (e) means "somewhere between atrocious and mediocre". But in (d), the second song can be anything short of excellent, or "somewhere between atrocious and very good". It's a broader range of "less than excellent" that includes the range of (e). Would you say that (d) is ambiguous because the range is so broad that it allows both the possibility of the song being "very good" and of being "not very good"? If so, then I would argue that the issue is not how broad the range is, but whether there is a range at all.
So, in summation, you asked:
Aren't these sentences ambiguous?
If, and only if, by "ambiguous" you mean that they leave some doubt as to the breadth of the range of "less than excellent" indicated, then "yes" for (a) and (c). "No" under any circumstances for (b).
Was the second song not as good as the first one, or was it just not good?
The question doesn't make sense as written. It should be reversed: "Was the second song not good, or was it just not as good as the first one?"
I'd take them to mean that the second one was just not a good song, but my feeling is that the other meaning is also possible.
If your preferred meaning is correct, then the other meaning is not only possible, it's a foregone conclusion.
It seems to me that 'It wasn't so/that good' might be used when one is comparing something to something else and also when one is making a judgement without making a comparison.
And now, if I may, I like to ask a question of my own:
Do you see these as grammar questions?