Given an instance of 3SAT with $m$ clauses, you can find the set of clauses that are not satisfied in some optimal assignment with $O(m)$ calls to the oracle.
The algorithm: Call the oracle on the original input to find $k^*$, the maximum number of clauses that can be satisfied. For each clause, try removing the clause and then call the oracle. If the maximum number of clauses that can be satisfied is still $k^*$, then leave the clause removed. Otherwise, put the clause back in.
To prove the correctness of this algorithm, we make two observations.
Observation 1: Throughout the algorithm, the non-removed clauses are always a superset of the satisfied clauses of some optimal assignment. (To see this, proceed by contrapositive. Suppose that the non-removed clauses are not a superset of the satisfied clauses of any optimal assignment. Then we cannot satisfy $k^*$ of the non-removed clauses simultaneously, or else those $k^*$ clauses would be the clauses of an optimal assignment for which the non-removed clauses are a superset.)
Observation 2: The algorithm will end with $k^*$ non-removed clauses. (Suppose that we have strictly more than $k^*$ clauses. By Observation 1, there is some optimal assignment whose satisfied clauses are a subset of the non-removed clauses. Then we can remove the clauses that aren't satisfied by this optimal assignment and still have $k^*$ satisfied clauses, and these clauses would have been removed when the algorithm looped over the clauses.)
Combining these observations, we see that the non-remaining clauses are exactly the clauses satisfied by some optimal assignment. So then the clauses we removed would be the the desired not-satisfied clauses.