Using SOQL can you access a parents children
Nope. The first SObject of a nested query must be a child of its outer query.
Not directly. What you can do is query the parent. Something like:
List<Account> accounts = [
SELECT Id, Name, (SELECT Id FROM Contacts), (SELECT Id, Name FROM Opportunities)
FROM Account
WHERE Id IN (SELECT AccountId FROM Opportunity)
];
That way you'll get information from the accounts, but use the opportunity as a filter. (on the example: only accounts that have opportunities will be retrieved).