Suppose that I have one wallet containing two private keys with one bitcoin deposited into each:
PK1 = 1 BTC (1st deposit, oldest)
PK2 = 1 BTC (2nd deposit, youngest)
1. I'm going to send 1 BTC, does the private key with the oldest coin get spent first?
To start with, private keys don't get spent. Work on using the correct words when you ask a question, and you'll be more likely to get the right answer. It is clear that you have a very limited and somewhat mistaken understanding about how bitcoin works and this is leading you to ask some questions that don't even make sense.
As for the question above, it looks like you are asking:
Given a wallet that has exactly two unspent outputs both of which are valued at exactly 1 BTC, if I send exactly 1 BTC (with no transaction fee) will the wallet choose to spend the older unspent output or the newer one (or is come other criteria used)?
Note that the answer to this question depends a LOT on what wallet you are using. These implementation details are not part of the protocol, and are left for each wallet developer to decide for themselves how they want to handle it. Therefore, it would be best to start out by telling us what wallet you are asking about. I assume you are asking about version 0.9.2.1 of Bitcoin Core?
In another hypothetical scenario, I have one wallet containing three private keys with one bitcoin deposited into each:
PK1 = 1 BTC (1st deposit, oldest)
PK2 = 1 BTC (2nd deposit)
PK3 = 1 BTC (3rd deposit, youngest)
2. I'm going to spend 1.5 BTC, which private key will get drained completely and which will get half drained?
Again, I assume you are talking about a wallet that has exactly 3 unspent outputs each valued at exactly 1 BTC?
Please note that it is not possible to "half-drain" an unspent output. The wallet will have to COMPLETELY spend at least 2 of the unspent outputs. It will then create 2 new outputs. One will be for 1.5 BTC to wherever you are sending it. The other will be 0.5 BTC in "change" that will be sent back into the wallet. Which address the wallet uses for the change will depend on what wallet you are using. In the case of Bitcoin Core, the wallet will create a brand new address (which it will keep hidden from you) with a brand new private key, and will send the 0.5 BTC change to this new address.
3. After the above transaction, I'm going to spend 0.75 BTC. Will Bitcoin-Core's behavior try to minimize input to save fees, or will it only consider coin age?
It is my understanding that Bitcoin Core generally gives priority to lower fee transactions. I'm not sure how it handles situations where two different transactions will result in the same current fee. I'd have to look at the code and get back to you on that.
How would the input change if instead of 0.75 BTC, I spend 1 BTC?
Again, I'd have to get back to you once I get a chance to review the exact code. I don't recall the exact conditions for building a transaction.