Given the compiler invocation, the only thing I can come up with is that there may be a copy of the framework in your build folder that doesn't have the public header.
The way to test this is to set Other C Flags in your target build settings to -v and rebuild. The Build Transcript (click the third button from the left in the horizontal scrollbar of the Build Results window) will show you the implicit and explicit search paths for all frameworks, e.g.:
#include "..." search starts here:
#include <...> search starts here:
/Volumes/Local/Products/iChatTheater.build/Debug/iChatTheater.build/iChatTheater.hmap (headermap)
/Volumes/Local/Intermediates/Debug (framework directory)
/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks (framework directory)
/Developer/SDKs/MacOSX10.5.sdk/usr/lib/gcc/i686-apple-darwin10/4.2.1/include
/Developer/SDKs/MacOSX10.5.sdk/usr/include
/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks (framework directory)
/Developer/SDKs/MacOSX10.5.sdk/Library/Frameworks (framework directory)
End of search list.
If the compiler finds MySQLConnection.framework in any of the second list of directories, it will then look for Headers/MySQLConnection.h in that framework, and if it doesn't find it, it will fail at that point.
Chris