Object reference not set to an instance of an objectBien, las pistas para la solución las da este post:
at Microsoft.Office.Server.Administration.UserProfileApplicationProxy.get_ApplicationProperties()
at Microsoft.Office.Server.Administration.UserProfileApplicationProxy.get_PartitionIDs()
at Microsoft.Office.Server.Administration.UserProfileApplicationProxy.IsAvailable(SPServiceContext serviceContext)
at Microsoft.Office.Server.Audience.AudienceManager.IsCurrentUserInAudienceOf(AudienceLoader audienceLoader, String audienceTextRepresentation, Boolean showUntargetedAudience)
at Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapNode.GetNavigationChildren(NodeTypes includedTypes, NodeTypes includedHiddenTypes, Boolean trimmingEnabled, OrderingMethod ordering, AutomaticSortingMethod method, Boolean ascending, Int32 lcid)
at Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapNode.GetNavigationChildren(NodeTypes includedTypes, NodeTypes includedHiddenTypes, OrderingMethod ordering, AutomaticSortingMethod method, Boolean ascending, Int32 lcid)
at SetNavigationFeatureReceiver.SetNavigationFeatureReceiver.SetNavigation(SPFeatureReceiverProperties properties)
at SetNavigationFeatureReceiver.SetNavigationFeatureReceiver.FeatureActivated(SPFeatureReceiverProperties properties)
at Microsoft.SharePoint.SPFeature.DoActivationCallout(Boolean fActivate, Boolean fForce)
http://social.technet.microsoft.com/Forums/en/sharepoint2010setup/thread/bdb0ea0e-13f1-4191-8f92-9d2fc2605115
En principio, el usuario que ejecuta ese código (depende del contexto será el usuario logado al sitio, el que ejecuta la aplicación, el owstimer, el usuario del pool, ...) debería tener permisos suficientes sobre la User Profile Service Application.
Lo que se propone es que, si se está ejecutando desde Visual Studio, el usuario desarrollador logado en sesión Windows debería ser administrador de la User Profile Service Application y ser administrador de granja. Bien, yo añado sobre esto que es necesario realizar un IISRESET (no parece suficiente con reiniciar el app pool) para que empiece a funcionar.